Um psql
script
Um script psql pode indexar vários arquivos, vamos supor 01_mydb.psql
, está no diretório de trabalho atual e você tem um diretório 01
que possui os arquivos 01_schema.sql
e 02_types.sql
.
01_mydb.psql
pode ser assim.
\i 01/01_schema.sql
\i 01/02_types.sql
Ou como você deseja estruturá-lo. Se as coisas ficarem mais complexas e precisarem de mais ordem, adicione mais subdiretórios
\i 01/10_tables/01_foo.sql
\i 01/10_tables/02_bar.sql
Então você iria apenas ..
- Adicione um arquivo de índice
01
, algo como./01/10_tables.psql
- Ou apenas adicione-os a todos
01_mydb.sql
Vou mostrar o segundo método usando find
,
Usando find
para gerar um script de carregamento principal.
Vamos em frente e criar essa estrutura.
01/
├── 01_schema.psql
├── 02_types.psql
└── 10_tables
├── 01_foo.psql
└── 02_bar.psql
Aqui estão os comandos que usamos para criá-lo.,
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
Agora você pode usar find
para gerar um script de carregamento
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
Agora apenas corra master.psql
;
psql -d database -f master.psql
psql -f master.sql
).