Một psql
kịch bản
Một tập lệnh psql có thể lập chỉ mục cho nhiều tệp, giả sử 01_mydb.psql
, nằm trong thư mục làm việc hiện tại và bạn có một thư mục 01
có các tệp 01_schema.sql
và 02_types.sql
.
01_mydb.psql
có thể trông như thế này
\i 01/01_schema.sql
\i 01/02_types.sql
Hoặc tuy nhiên bạn muốn cấu trúc nó. Nếu mọi thứ trở nên phức tạp hơn và cần nhiều thứ tự hơn, hãy thêm nhiều thư mục con
\i 01/10_tables/01_foo.sql
\i 01/10_tables/02_bar.sql
Sau đó, bạn sẽ chỉ ..
- Thêm một tệp chỉ mục vào
01
, một cái gì đó như./01/10_tables.psql
- Hoặc, chỉ cần thêm tất cả vào
01_mydb.sql
Tôi sẽ hiển thị phương thức thứ hai bằng cách sử dụng find
,
Sử dụng find
để tạo tập lệnh tải chính.
Hãy tiếp tục và tạo ra cấu trúc đó.
01/
├── 01_schema.psql
├── 02_types.psql
└── 10_tables
├── 01_foo.psql
└── 02_bar.psql
Đây là các lệnh chúng ta sử dụng để tạo ra nó.,
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
Bây giờ bạn có thể sử dụng find
để tạo tập lệnh tải
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
Bây giờ chỉ cần chạy master.psql
;
psql -d database -f master.psql
psql -f master.sql
).