An open API service indexing awesome lists of open source software.

https://github.com/cleaning-corp/db

БД для клининговой компании: учёт заказов, клиентов, сотрудников и т.д.
https://github.com/cleaning-corp/db

database plpgsql postgresql relational-databases sql sql-schema

Last synced: 9 months ago
JSON representation

БД для клининговой компании: учёт заказов, клиентов, сотрудников и т.д.

Awesome Lists containing this project

README

          

# Database Initialization

Этот проект включает сценарии для автоматической генерации файла `init.sql`, который собирает все схемы и настройки базы
данных из различных файлов SQL в папке `schemas`.

## Структура проекта

- `schemas/` — папка, содержащая все схемы базы данных, разделенные на файлы:
- `clients/` — схема для работы с заказчиками.
- `functions.sql` — пользовательские функции для работы с данными.
- `indexes.sql` — индексы для таблицы пользователей.
- `table.sql` — описание таблицы.
- `triggers.sql` — триггеры для таблицы.

## Как это работает

1. Скрипт `run.sh` парсит все SQL-файлы в папке `schemas/`, включая вложенные папки (например, `schemas/clients/`).
2. Каждый файл добавляется в общий файл `init.sql` в порядке, определенном скриптом.
3. Результирующий файл `init.sql` включает все таблицы, индексы, функции и триггеры, которые необходимы для
инициализации базы данных.

> **Примечание:** Если какой-либо из файлов отсутствует, скрипт завершится с ошибкой. Убедитесь, что все необходимые
> файлы присутствуют в папке `schemas/`.

## Установка

1. Скачайте или клонируйте репозиторий.
2. Убедитесь, что у вас установлен `bash` и доступ к `shell`.
3. В корне проекта выполните команду:
```bash
bash run.sh
```
4. После выполнения скрипта в директории появится файл `init.sql`, готовый к использованию для инициализации базы
данных.

## Структура `init.sql`

Файл `init.sql` будет содержать:

1. `Таблицы` — описание всех таблиц, включая их поля и ограничения.
2. `Индексы` — индексы, которые помогают ускорить выполнение запросов.
3. `Функции` — пользовательские функции, используемые для работы с данными.
4. `Триггеры` — триггеры для автоматического выполнения определенных действий при изменении данных.

## Пример структуры каталогов:

```plaintext
schemas/
├── clients/
│ ├── functions.sql
│ ├── indexes.sql
│ ├── table.sql
│ └── triggers.sql
run.sh
init.sql
```

### Пример содержимого `table.sql`:

```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](USAGE.md)