Ich nehme das Freeware-Tool meines Vertrauens "
SQLite Expert" und lege damit meine gewünschte Struktur an. Zeitgleich kann er mir ein Buildscript daraus generieren, also wie man diese Tabellen und Regeln per
SQL anlegen würde. Das kann aber sicherlich jedes andere Tool auch.
Wenn beim Programmstart die Datenbank nicht existiert nimmt das Programm dieses hinterlegte Skript und führt es aus. Dann habe ich meine erwartete Tabellenstruktur und bin fertig. Optional könnte dieses Buildskript schon Beispieldaten enthalten wenn man z.B. einen Demo-Modus haben möchte...
Praktisch habe ich eine Variable
mustRunBuildScript
die im OnBeforeConnect-Event der Verbindung auf True gesetzt wird wenn die Datenbank nicht existiert. Im OnAfterConnect-Event wird dann, wenn die Variable true ist, das Buildscript über
TFDConnection.ExecSQL(..)
ausgeführt.
Delphi-Quellcode:
procedure TStorageModuleSqlite.runBuildScript();
const
fileName = 'buildscript_sqlite.sql';
var
filePath: String;
begin
filePath := TPath.Combine('...', fileName);
connection.ExecSQL( TFile.ReadAllText(filePath) );
mustRunBuildScript := False;
end;