Этот проект включает сценарии для автоматической генерации файла init.sql
, который собирает все схемы и настройки базы
данных из различных файлов SQL в папке schemas
.
schemas/
— папка, содержащая все схемы базы данных, разделенные на файлы:clients/
— схема для работы с заказчиками.functions.sql
— пользовательские функции для работы с данными.indexes.sql
— индексы для таблицы пользователей.table.sql
— описание таблицы.triggers.sql
— триггеры для таблицы.
- Скрипт
run.sh
парсит все SQL-файлы в папкеschemas/
, включая вложенные папки (например,schemas/clients/
). - Каждый файл добавляется в общий файл
init.sql
в порядке, определенном скриптом. - Результирующий файл
init.sql
включает все таблицы, индексы, функции и триггеры, которые необходимы для инициализации базы данных.
Примечание: Если какой-либо из файлов отсутствует, скрипт завершится с ошибкой. Убедитесь, что все необходимые файлы присутствуют в папке
schemas/
.
- Скачайте или клонируйте репозиторий.
- Убедитесь, что у вас установлен
bash
и доступ кshell
. - В корне проекта выполните команду:
bash run.sh
- После выполнения скрипта в директории появится файл
init.sql
, готовый к использованию для инициализации базы данных.
Файл init.sql
будет содержать:
Таблицы
— описание всех таблиц, включая их поля и ограничения.Индексы
— индексы, которые помогают ускорить выполнение запросов.Функции
— пользовательские функции, используемые для работы с данными.Триггеры
— триггеры для автоматического выполнения определенных действий при изменении данных.
schemas/
├── clients/
│ ├── functions.sql
│ ├── indexes.sql
│ ├── table.sql
│ └── triggers.sql
run.sh
init.sql
CREATE TABLE clients
(
client_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
email VARCHAR(100),
address VARCHAR(200) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
notes VARCHAR(300)
);
После выполнения скрипта run.sh
файл init.sql
будет содержать все необходимые схемы для работы с заказчиками,
которые могут быть использованы для инициализации вашей базы данных.
Дальнейшие инструкции находятся в USAGE.md