Startup-Skript zum Erstellen eines Schemas in HSQLDB

9

Ich versuche eine In-Memory-Datenbank zu verwenden, um eine Teradatendatenbank nachzuahmen. Ich muss ein Schema erstellen, bevor die Tabellen erstellt werden, aber es gibt mir passt.

Ich benutze Spring und habe viel Datenbankinteraktion mit import.sql , dies wird jedoch ausgeführt, nachdem Hibernate alle Tabellen erstellt hat. Ich habe versucht, die Datei .script zu verwenden, die HSQLDB lesen soll, aber ich denke, wenn Sie eine In-Memory-Datenbank verwenden, die nicht funktioniert. Ich habe die Dateien ein wenig verschoben und nichts scheint zu treffen.

Wer hat herausgefunden, wie man beim Start ein Schema für eine speicherinterne HSQLDB-Datenbank erstellt?

    
markthegrea 01.11.2011, 14:34
quelle

2 Antworten

5

Wenn Sie Ihr Skript auf diese Weise ausführen ...

%Vor%

... dann wird es ausgeführt, bevor Hibernate seine Initialisierung durchführt.

Ich habe es erneut getestet, besonders für dich. Es wird ausgeführt, bevor Hibernate die Tabellen erstellt. Sehen Sie sich dieses Protokoll an ( das Skript läuft in den ersten drei Zeilen, Hibernate in den letzten ):

%Vor%     
Ralph 01.11.2011, 16:20
quelle
0

Sie können eine Datei verwenden: Datenbank mit allen Daten im Speicher und ohne Änderungen, die von Ihrem Test geschrieben wurden. Dies sollte Ihrem Zweck dienen.

Erstellen Sie zuerst das Datenbankschema mit der URL jdbc:hsqldb:file:initdata und führen Sie SHUTDOWN aus. Dann füge hinzu files_readonly=true für die initdata.properties -Datei oder alternativ die folgende URL:

%Vor%

Wenn Ihre Tests für diese Datenbank ausgeführt werden, wird nichts in Datenbankdateien geschrieben und alle Daten sind im Speicher.

    
fredt 01.11.2011 22:42
quelle

Tags und Links