Use Zammad IDs for organization links
This commit is contained in:
1 parent
dcc115a82c
commit
a760f423a4
2 files changed
+120
-44
No files matched your search
@@ -97,7 +97,7 @@ export async function migrate() {
|
||||
CREATE TABLE IF NOT EXISTS tickets (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
ticket_number TEXT NOT NULL UNIQUE,
|
||||
organization_id BIGINT REFERENCES organizations(id),
|
||||
organization_id BIGINT REFERENCES organizations(zammad_id),
|
||||
customer_name TEXT,
|
||||
work_type TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
@@ -107,7 +107,7 @@ export async function migrate() {
|
||||
`);
|
||||
|
||||
await query("ALTER TABLE tickets ADD COLUMN IF NOT EXISTS customer_name TEXT;");
|
||||
await query("ALTER TABLE tickets ADD COLUMN IF NOT EXISTS organization_id BIGINT REFERENCES organizations(id);");
|
||||
await query("ALTER TABLE tickets ADD COLUMN IF NOT EXISTS organization_id BIGINT REFERENCES organizations(zammad_id);");
|
||||
await query("ALTER TABLE tickets ADD COLUMN IF NOT EXISTS work_type TEXT;");
|
||||
await query(`
|
||||
ALTER TABLE tickets
|
||||
@@ -130,7 +130,7 @@ export async function migrate() {
|
||||
CREATE TABLE IF NOT EXISTS sessions (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
ticket_id BIGINT NOT NULL REFERENCES tickets(id) ON DELETE CASCADE,
|
||||
organization_id BIGINT REFERENCES organizations(id),
|
||||
organization_id BIGINT REFERENCES organizations(zammad_id),
|
||||
customer_name TEXT NOT NULL,
|
||||
activity TEXT NOT NULL,
|
||||
work_type TEXT NOT NULL,
|
||||
@@ -151,7 +151,7 @@ export async function migrate() {
|
||||
`);
|
||||
|
||||
await query("ALTER TABLE sessions ADD COLUMN IF NOT EXISTS user_id BIGINT REFERENCES users(id);");
|
||||
await query("ALTER TABLE sessions ADD COLUMN IF NOT EXISTS organization_id BIGINT REFERENCES organizations(id);");
|
||||
await query("ALTER TABLE sessions ADD COLUMN IF NOT EXISTS organization_id BIGINT REFERENCES organizations(zammad_id);");
|
||||
await query("ALTER TABLE sessions ADD COLUMN IF NOT EXISTS recurring_billing_id BIGINT;");
|
||||
await query("ALTER TABLE sessions ADD COLUMN IF NOT EXISTS recurring_billing_slot_id BIGINT;");
|
||||
await query("ALTER TABLE sessions ADD COLUMN IF NOT EXISTS recurring_occurrence_date DATE;");
|
||||
@@ -173,7 +173,7 @@ export async function migrate() {
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
ticket_number TEXT,
|
||||
organization_id BIGINT NOT NULL REFERENCES organizations(id),
|
||||
organization_id BIGINT NOT NULL REFERENCES organizations(zammad_id),
|
||||
activity TEXT NOT NULL,
|
||||
work_type TEXT NOT NULL,
|
||||
recurrence_type TEXT NOT NULL,
|
||||
@@ -191,6 +191,82 @@ export async function migrate() {
|
||||
);
|
||||
`);
|
||||
|
||||
await query(`
|
||||
ALTER TABLE tickets DROP CONSTRAINT IF EXISTS tickets_organization_id_fkey;
|
||||
ALTER TABLE sessions DROP CONSTRAINT IF EXISTS sessions_organization_id_fkey;
|
||||
ALTER TABLE recurring_billings DROP CONSTRAINT IF EXISTS recurring_billings_organization_id_fkey;
|
||||
`);
|
||||
|
||||
await query(`
|
||||
UPDATE tickets t
|
||||
SET organization_id = o.zammad_id
|
||||
FROM organizations o
|
||||
WHERE t.organization_id = o.id
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM organizations current_org
|
||||
WHERE current_org.zammad_id = t.organization_id
|
||||
);
|
||||
`);
|
||||
|
||||
await query(`
|
||||
UPDATE sessions s
|
||||
SET organization_id = o.zammad_id
|
||||
FROM organizations o
|
||||
WHERE s.organization_id = o.id
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM organizations current_org
|
||||
WHERE current_org.zammad_id = s.organization_id
|
||||
);
|
||||
`);
|
||||
|
||||
await query(`
|
||||
UPDATE recurring_billings rb
|
||||
SET organization_id = o.zammad_id
|
||||
FROM organizations o
|
||||
WHERE rb.organization_id = o.id
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM organizations current_org
|
||||
WHERE current_org.zammad_id = rb.organization_id
|
||||
);
|
||||
`);
|
||||
|
||||
await query(`
|
||||
UPDATE tickets
|
||||
SET organization_id = NULL
|
||||
WHERE organization_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM organizations o
|
||||
WHERE o.zammad_id = tickets.organization_id
|
||||
);
|
||||
`);
|
||||
|
||||
await query(`
|
||||
UPDATE sessions
|
||||
SET organization_id = NULL
|
||||
WHERE organization_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM organizations o
|
||||
WHERE o.zammad_id = sessions.organization_id
|
||||
);
|
||||
`);
|
||||
|
||||
await query(`
|
||||
ALTER TABLE tickets
|
||||
ADD CONSTRAINT tickets_organization_id_fkey
|
||||
FOREIGN KEY (organization_id) REFERENCES organizations(zammad_id);
|
||||
ALTER TABLE sessions
|
||||
ADD CONSTRAINT sessions_organization_id_fkey
|
||||
FOREIGN KEY (organization_id) REFERENCES organizations(zammad_id);
|
||||
ALTER TABLE recurring_billings
|
||||
ADD CONSTRAINT recurring_billings_organization_id_fkey
|
||||
FOREIGN KEY (organization_id) REFERENCES organizations(zammad_id);
|
||||
`);
|
||||
|
||||
await query("ALTER TABLE recurring_billings ALTER COLUMN ticket_number DROP NOT NULL;");
|
||||
await query("ALTER TABLE recurring_billings DROP CONSTRAINT IF EXISTS recurring_billings_ticket_number_format;");
|
||||
await query("UPDATE recurring_billings SET recurrence_type = 'every_n_weeks' WHERE recurrence_type = 'every_n_days';");
|
||||
|
||||
Reference in new issue
Block a user