Я пытаюсь автоматизировать создание схем и некоторых таблиц в этой вновь созданной схеме. Я пытаюсь написать сценарий в powershell, чтобы помочь мне достичь того же. Мне удалось создать схему, однако я не могу создать таблицы в этой схеме.PostgreSQL - автоматизация создания схемы и таблицы - powershell
Я передаю новую схему, которая будет создана как переменная в powershell.
сценария до сих пор (на основе от раствора из следующего ответа StackOverFlow Solution.):
$MySchema=$args[0]
$CreateSchema = 'CREATE SCHEMA \"'+$MySchema+'\"; set schema '''+$MySchema+''';'
write-host $CreateSchema
C:\PostgreSQL\9.3\bin\psql.exe -h $DBSERVER -U $DBUSER -d $DBName -w -c $CreateSchema
# To create tables
C:\PostgreSQL\9.3\bin\psql.exe -h $DBSERVER -U $DBUSER -d $DBName -w -f 'E:\automation\scripts\create-tables.sql' -v schema=$MySchema
при исполнении, я вижу следующее сообщение об ошибке:
psql:E:/automation/scripts/create-tables.sql:11: ERROR: no schema has been selected to create in
Содержание моих create-tables.sql is:
SET search_path TO :schema;
CREATE TABLE testing (
id SERIAL,
QueryDate varchar(255) NULL
);
Я удалил код 'set schema'. Тем не менее, та же ошибка сохраняется. 'psql: E: /automation/scripts/create-tables.sql: 11: ОШИБКА: никакая схема не была выбрана для создания в' – DataRiver
Что-нибудь еще, что я могу сделать, чтобы заставить это работать? Для меня это кажется тривиальной вещью, но я не могу найти быстрого решения, любая помощь приветствуется. – DataRiver
Думаю, вам нужно пройти шаг за шагом. Сначала закомментируйте второй вызов psql, запустите свой скрипт и затем вручную проверьте, существует ли схема. Если это так, закомментируйте первый вызов psql, запустите свой скрипт и проверьте, существует ли таблица тестирования в схеме. Вы также можете просмотреть файлы журнала базы данных и, возможно, установить в файле конфигурации «log_statement = all», чтобы увидеть все, что действительно запускается. – yieldsfalsehood