Ein psql
Skript
Ein psql-Skript kann mehrere Dateien indizieren. Nehmen wir an 01_mydb.psql
, es befindet sich im aktuellen Arbeitsverzeichnis, und Sie haben ein Verzeichnis 01
mit den Dateien 01_schema.sql
und 02_types.sql
.
01_mydb.psql
kann so aussehen.
\i 01/01_schema.sql
\i 01/02_types.sql
Oder wie auch immer Sie es strukturieren möchten. Wenn die Dinge komplexer werden und mehr Ordnung benötigen, fügen Sie weitere Unterverzeichnisse hinzu
\i 01/10_tables/01_foo.sql
\i 01/10_tables/02_bar.sql
Dann würdest du einfach entweder ..
- Fügen Sie eine Indexdatei in
01
, so etwas wie./01/10_tables.psql
- Oder fügen Sie sie einfach alle hinzu
01_mydb.sql
Ich werde die zweite Methode mit zeigen find
,
Verwenden Sie find
, um ein Master-Load-Skript zu generieren.
Lassen Sie uns fortfahren und diese Struktur erstellen.
01/
├── 01_schema.psql
├── 02_types.psql
└── 10_tables
├── 01_foo.psql
└── 02_bar.psql
Hier sind die Befehle, mit denen wir es erstellen.
mkdir 01
touch 01/01_schema.sql
touch 01/02_types.sql
mkdir 01/10_tables
touch 01/10_tables/01_foo.sql
touch 01/10_tables/02_bar.sql
Jetzt können Sie find
ein Ladeskript generieren
find ./01/ -type f -printf '\\i %p\n' | sort | tee master.psql
\i ./01/01_schema.sql
\i ./01/02_types.sql
\i ./01/10_tables/01_foo.sql
\i ./01/10_tables/02_bar.sql
Jetzt lauf einfach master.psql
;
psql -d database -f master.psql
psql -f master.sql
).