fix: replace regex constraint with LIKE '%/%' for PG compat
- constraint CHECK (value_cidr LIKE '%/%') instead of regex - regex broke on managed PG with standard_conforming_strings=off - ALTER TABLE adds constraint on existing tables
This commit is contained in:
@@ -35,7 +35,7 @@ async function ensureSchema() {
|
||||
CREATE TABLE IF NOT EXISTS whitelist_entries (
|
||||
id SERIAL PRIMARY KEY,
|
||||
company_id INTEGER NOT NULL REFERENCES companies(id) ON DELETE RESTRICT,
|
||||
value_cidr VARCHAR(18) NOT NULL CHECK (value_cidr ~ '^(\d{1,3}\.){3}\d{1,3}/\d{1,2}$'),
|
||||
value_cidr VARCHAR(18) NOT NULL CHECK (value_cidr LIKE '%/%'),
|
||||
comment VARCHAR(255),
|
||||
created_by VARCHAR(255) NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
@@ -60,6 +60,13 @@ async function ensureSchema() {
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_audit_company_time ON audit_log(company_id, created_at DESC);
|
||||
`);
|
||||
|
||||
// Замена constraint на managed-совместимый (без regex, который ломается от standard_conforming_strings)
|
||||
await pool.query(`
|
||||
ALTER TABLE whitelist_entries DROP CONSTRAINT IF EXISTS whitelist_entries_value_cidr_check;
|
||||
ALTER TABLE whitelist_entries ADD CONSTRAINT whitelist_entries_value_cidr_check CHECK (value_cidr LIKE '%/%');
|
||||
`).catch(() => {}); // игнор если нет прав на ALTER
|
||||
|
||||
console.log('[db] Schema ensured');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user