Shell script to execute pgsql commands in files

Я пытаюсь автоматизировать набор процедур, которые создают базы данных TEMPLATE.

У меня есть набор файлов (file1, file2, ... fileN), каждый из которых содержит набор команд pgsql, необходимых для создания базы данных TEMPLATE.

Содержимое файла (createdbtemplate1.sql) выглядит примерно так:

CREATE DATABASE mytemplate1 WITH ENCODING 'UTF8';

\c mytemplate1

CREATE TABLE first_table ( 
 --- fields here ..
);

-- Add C language extension + functions
\i db_funcs.sql

Я хочу иметь возможность написать сценарий оболочки, который будет выполнять команды в файле, чтобы я мог написать сценарий вроде этого:

# run commands to create TEMPLATE db mytemplate1
# ./groksqlcommands.sh createdbtemplate1.sql

for dbname in foo foofoo foobar barbar
do
    # Need to simply create a database based on an existing template in this script
    psql CREATE DATABASE $dbname TEMPLATE mytemplate1
done

Есть предложения, как это сделать? (Как вы уже догадались, я новичок в shell-сценариях)

Edit

Чтобы уточнить вопрос, я хочу знать:

  1. Как написать groksqlcommands.sh (сценарий на bash, который будет выполнять набор команд pgsql из файла)
  2. Как создать базу данных на основе существующего шаблона в командной строке
29
задан jww 28 June 2017 в 18:54
поделиться