Fix: DO$$ блок проверяет RESTORE перед DROP — идемпотентно. Версия 0.1.20
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ipwhitelist",
|
||||
"version": "0.1.19",
|
||||
"version": "0.1.20",
|
||||
"description": "IP WhiteList microservice for cloud provider",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
// ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
module.exports = {
|
||||
version: '0.1.19',
|
||||
version: '0.1.20',
|
||||
|
||||
// ── Среда ─────────────────────────────────────────────────────────────────
|
||||
// APP_ENV=test → тестовый стенд (жёлтый баннер в UI, можно включать тестовый API)
|
||||
|
||||
+12
-1
@@ -65,12 +65,23 @@ async function ensureSchema(pool) {
|
||||
ALTER TABLE audit_log ADD COLUMN IF NOT EXISTS impersonated_by VARCHAR(255) DEFAULT NULL
|
||||
`).catch(() => {});
|
||||
|
||||
// Миграция: добавить RESTORE в CHECK (если ещё нет)
|
||||
// Миграция: добавить RESTORE в CHECK — только если ещё нет (без DROP+ADD каждый раз)
|
||||
await pool.query(`
|
||||
DO $$
|
||||
DECLARE
|
||||
cn text;
|
||||
has_restore boolean;
|
||||
BEGIN
|
||||
-- Проверяем, есть ли уже RESTORE в constraint
|
||||
SELECT con.consrc LIKE '%RESTORE%' OR pg_get_constraintdef(con.oid) LIKE '%RESTORE%' INTO has_restore
|
||||
FROM pg_constraint con
|
||||
JOIN pg_class rel ON rel.oid = con.conrelid
|
||||
WHERE rel.relname = 'audit_log' AND con.contype = 'c';
|
||||
-- Если уже есть — ничего не делаем
|
||||
IF has_restore THEN
|
||||
RAISE NOTICE 'audit_log CHECK already includes RESTORE, skipping';
|
||||
RETURN;
|
||||
END IF;
|
||||
SELECT con.conname INTO cn
|
||||
FROM pg_constraint con
|
||||
JOIN pg_class rel ON rel.oid = con.conrelid
|
||||
|
||||
Reference in New Issue
Block a user