PSQL создание базы данных из скрипта - PullRequest
0 голосов
/ 26 февраля 2020

У меня проблема с автоматическим созданием базы данных c. Я создал файл create_database. sql со следующим кодом:

BEGIN;
\i schema.sql
\i domains.sql
\i sequences.sql
\i tables.sql
\i dane/insert_users.sql
\i dane/insert_default_expenses.sql
\i dane/insert_default_incomes.sql
\i dane/insert_default_payments.sql
\i dane/insert_user_incomes.sql
\i dane/insert_user_expenses.sql
\i dane/insert_user_payments.sql
\i dane/insert_expenses.sql
\i dane/insert_incomes.sql
\i procedures.sql
\i views.sql
COMMIT;

Я хотел бы автоматически создать базу данных, используя эту транзакцию. Поэтому я набираю внутри SQL SHELL:

psql budget < 'C:\Users\xxx\Desktop\yyy\create_database.sql'

Не возвращается ошибка, но БД не обновляется. Есть идеи почему?

1 Ответ

1 голос
/ 27 февраля 2020

Для запуска файла SQL необходимо предоставить файл с помощью следующей команды

./psql -U postgres -d postgres -p 5432 -f 'C:\Users\xxx\Desktop\yyy\create_database.sql'

Также в create_database. sql Вам необходимо указать полный путь для всех файлов sql, которые вы выполняете изнутри блока tracnsaction, например

\i C:\Users\xxx\Desktop\yyy\schema.sql

Раскрытие информации: я работаю на EnterpriseDB (EDB)

...