getpgdata: подробная документация переноса данных в новую БД (history + data/README)

This commit is contained in:
naeel
2026-08-18 22:20:46 +04:00
parent 0b2d7ac990
commit b60f3313a5
2 changed files with 138 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
# data/ — дамп данных прежней БД
Здесь сохранены данные, выгруженные из **прежней** PostgreSQL (инстанс
`postgresqlk8s-master.60bdf3e3-...`, БД `ipwhitelist`), до переноса в новую
(инстанс `a5e9d24f`).
## Файлы
| Файл | Таблица | Строк | Описание |
|---|---|---|---|
| `companies.json` | companies | 9 | метаданные компаний (id, client_id, name, custom_limit, created_at, updated_at) |
| `whitelist_entries.json` | whitelist_entries | 20 | записи белого списка (IP, comment, кто создал/изменил/удалил, даты) |
| `audit_log.json` | audit_log | 39 | журнал аудита (user_email, company_id, action, old/new_value, entry_id, created_at) |
| `_migrations.json` | _migrations | 2 | применённые миграции |
| `import.sql` | — | 84 строки | готовый SQL-скрипт вставки (companies → entries → audit + sequence) |
Формат каждого `.json` — ответ `POST /api/sql`:
```json
{ "ok": true, "fields": [...], "rows": [...], "rowCount": N }
```
## Почему нет session.json
Таблица `session` (1147 строк) — временные пользовательские сессии входа
(`connect-pg-simple`). Для переноса белых списков не нужна и не переносится —
в новой БД сессии создаются заново. Дамп `session.json` был обрезан и удалён.
## import.sql
Генерируется из `*.json` и содержит:
- `BEGIN; ... COMMIT;` — транзакция
- INSERT для `companies` (с явными id, `ON CONFLICT (id) DO NOTHING`)
- INSERT для `whitelist_entries` (id + company_id — ссылки сохранены)
- INSERT для `audit_log`
- `SELECT setval(...)` — сброс sequence на MAX(id)
**Важно:** `/api/sql` выполняет ОДИН statement за вызов, поэтому `import.sql` целиком
никак не выполнить одним запросом. Вставка делалась клиентом по одному INSERT.