Как я могу автоматизировать создание базы данных в Postgresql - PullRequest
0 голосов
/ 17 мая 2019

Я новичок в этом, может кто-нибудь помочь мне написать сценарий для автоматизации этих строк с помощью сценариев оболочки?

postgres=# CREATE DATABASE testdb;<br>
postgres-# 

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

Postgres имеет инструмент командной строки для создания баз данных: createdb. Ваш сценарий может вызвать это, и соответствующие dropdb, чтобы отбросить их.

createdb testdb

Подключение и аутентификация работает очень похоже на psql. Вы можете передать информацию о соединении в командной строке или использовать переменные окружения PGHOST, PGPORT и PGUSER.

Для более общих команд вы можете отправлять команды в Postgres, используя psql, отправив их на стандартный ввод.

echo 'CREATE DATABASE testdb' | psql

Для чего-то более сложного я бы порекомендовал вам использовать более мощный язык с библиотекой базы данных Postgres.

0 голосов
/ 18 мая 2019

Если вы работаете в Linux:

  1. Войти в Linux как postgresql
  2. Создайте файл со всеми вашими командами CREATE DATABASE. В этом примере файл createdb.sql и содержит следующие 3 команды создания базы данных:

    CREATE DATABASE МОЕ;

    CREATE DATABASE Ларри;

    CREATE DATABASE вьющиеся;

  3. Запустите в командной строке следующее:

    psql -f созданный b.sql

Затем вы можете перечислить свои новые базы данных - в данном случае мо, Ларри и Керли.

enter image description here

Так как вы упомянули о необходимости сценария оболочки bash (для автоматизации) вышеупомянутой задачи, вы можете создать следующий сценарий, который принимает в качестве аргумента командной строки имя файла SQL (.sql), который содержит ваши команды SQL и обработайте их, используя psql :

#!/bin/bash
psql -f $1 

Предполагая, что указанный выше файл и его содержимое называются autosql.sh, вы изменили бы режим сценария для выполнения после его создания (chmod 755 autosql.sh) и запустили его из командной строки как:

autosql.sh createdb.sql

Теперь вы можете использовать этот скрипт оболочки bash и передать любой файл SQL (.sql), содержащий команды SQL, которые вы хотите запустить.

Чтобы автоматизировать этот процесс в Linux, используйте cron (дополнительную информацию смотрите в справочных страницах cron).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...