2016-05-13 8 views
0

Ich benutze Play Framework 2.4 mit Java, um eine Webanwendung zu entwickeln, und ich habe eine eingebettete H2 DB-Datei in das Projekt aufgenommen. Diese Datei befindet sich in einem separaten Ordner namens "db". Ich muss git force add verwenden, um diese Datei zu git hinzuzufügen, da der Inhalt in diesem Ordner von git ignoriert wird. Der Code funktioniert in meinem lokalen Rechner einwandfrei und nachdem ich vom Ursprung abfahre sagt er schon, dass er aktuell ist (kein Unterschied zwischen meinem lokalen Repo und dem Repo im Ursprung). Aber wenn jemand anderes dieses Projekt klont und ausführt, wird die Tabelle 'SOMENAME' in der Datenbank nicht gefunden (Die Datenbankverbindung ist in Ordnung). Und kann keinen Unterschied zwischen diesem geklonten Projekt und dem Ursprungsrepo finden. Aber wenn ich das Projekt auf meinem lokalen Rechner auf diesen Rechner kopiere, läuft es ohne Probleme. Ich bin wirklich verwirrt und was könnte der Grund für dieses Problem sein? Beide Maschinen verwenden dieselbe Spielversion und dasselbe Betriebssystem.Kein Unterschied zwischen lokalem und Ursprungsposin git. Aber die Tabelle wird nicht in H2DB gefunden, wenn jemand anderes das Projekt geklont hat?

+0

die Datenbank 'SOMENAME' Tabelle anderer existiert in ihrer Datenbank? Bitte stellen Sie sicher, dass seine Datenbank mit Ihrer übereinstimmt. – Jerry

+0

Ja. Es existiert, wenn ich ihre überprüfe. –

+1

so seltsam, aber offensichtlich ist es nicht die Schuld Ihres Codes, die Frage kann Ihnen helfen http://stackoverflow.com/questions/5763747/h2-in-memory-database-table-not-found – Jerry

Antwort

2

Ich hatte die gleiche Erfahrung. Nach der Play-Version 1.4 erstellt es automatisch eine mv db, wenn Sie versuchen, eine Verbindung zu einer h2 db herzustellen. Dann liest es diese leere MV-db statt Ihrer h2 db. Deshalb heißt es, dass deine Tabelle nicht gefunden wurde. Der Grund, keinen Unterschied zwischen dem Ursprung und dem geklonten Repository zu zeigen, ist, dass der Inhalt in Ihrem db-Ordner von git ignoriert wird. Nachdem mv db erstellt wurde, wird mv db von git ignoriert. Sie können Ihrer Datenbank-URL "" hinzufügen. Dann verbindet sich Ebean nur mit der Datenbank, wenn sie existiert. Auf diese Weise können Sie die automatische Erstellung von mv db vermeiden.