Ich bin verwirrt über die Fehler, die ich bekomme, wenn ich versuche, eine In-Memory H2 DB für meine Spring Boot-Anwendung zu erstellen. Die entsprechende Konfiguration istMuss oder muss ich nicht eine Tabelle erstellen, die ich mit H2 auffüllen möchte?
db.url=jdbc:h2:mem:test;MODE=MySQL;DB_CLOSE_DELAY=-1;INIT=runscript from 'classpath:create.sql'
hibernate.hbm2ddl.auto=create
Und create.sql
:
CREATE TABLE `cities` (
`name` varchar(45) NOT NULL,
PRIMARY KEY (`name`)
) ;
INSERT INTO `cities` VALUES ('JAEN'),('ALBACETE');
aber ich habe den Fehler Caused by: org.h2.jdbc.JdbcSQLException: Table "CITIES" already exists;
Sonderbare ist, wenn ich die CREATE TABLE
Anweisung entfernen, erhalte ich:
Caused by: org.h2.jdbc.JdbcSQLException: Table "CITIES" not found;
Das einzige, was funktioniert, ist die Verwendung DROP TABLE IF EXISTS
, aber naja, ich glaube nicht, dass ich das tun sollte.
Was ist los? Was ist der richtige Weg, um statische Daten in eine H2-Speicher-DB zu füllen?