Một psqlkị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 01có các tệp 01_schema.sqlvà 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).