Автоматизация создания базы данных с использованием psql - PullRequest
1 голос
/ 16 декабря 2010

У меня есть файл, содержащий команды SQL для создания базы данных.

У меня также есть набор отдельных файлов, каждый из которых содержит команды SQL для создания функций.Например:

  • funcs_algebra.sql
  • funcs_trigonometry.sql
  • funcs_geometry.sql

Допустим, мой основной SQL-скрипт выглядит следующим образом:

CREATE DATABASE mydb;

CREATE TABLE foo(id INT, name VARCHAR(32));
CREATE TABLE foobar(id INT, age REAL);

-- Commands below to import the functions in the separate files
-- funcs_algebra.sql
-- funcs_trigonometry.sql
-- funcs_geometry.sql

Я хочу знать, как включить файлы в мой «основной SQL», чтобы у меня был только один файл для передачи в psql.

Цель состоит в том, чтобы иметь возможностьиспользуйте psql для создания базы данных (в комплекте с функциями), просто передавая команды в этом файле в psql.

Кто-нибудь знает, как?

[Edit]

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

Определения функций используются для создания других шаблонных баз данных - поэтому я хочу хранить их в отдельных файлах, но ссылаться на файлыиз моего скрипта SQL.

Единственный другой способ, которым я могу думать об этом, - это написать скрипт bash, который делает последовательные вызовы psql - сначала создайте базу данных, а затем добавьте функции - не очень элегантно, ине очень сухой.Есть ли другой (более элегантный) способ?

1 Ответ

2 голосов
/ 16 декабря 2010

Вы можете написать:

\i funcs_algebra.sql

в вашем основном скрипте SQL, чтобы включить скрипт дополнительных функций.

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