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
БД для клининговой компании: учёт заказов, клиентов, сотрудников и т.д.
- Host: GitHub
- URL: https://github.com/cleaning-corp/db
- Owner: cleaning-corp
- Created: 2025-04-04T10:26:45.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-04-08T12:15:42.000Z (9 months ago)
- Last Synced: 2025-04-10T22:48:36.411Z (9 months ago)
- Topics: database, plpgsql, postgresql, relational-databases, sql, sql-schema
- Language: SQL
- Homepage:
- Size: 39.1 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: docs/README.md
- Code of conduct: docs/CODE_OF_CONDUCT.md
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)