getpgdata: подробная документация переноса данных в новую БД (history + data/README)
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user