Files
gochat/migrations/000047_add_help_center_model_fields.up.sql
T

50 lines
1.7 KiB
SQL

-- Align help-center tables with current GoChat/Chatwoot frontend model fields.
ALTER TABLE categories
ADD COLUMN IF NOT EXISTS account_id INTEGER,
ADD COLUMN IF NOT EXISTS parent_id INTEGER,
ADD COLUMN IF NOT EXISTS associated_category_id INTEGER,
ADD COLUMN IF NOT EXISTS custom_attributes JSONB DEFAULT '{}';
UPDATE categories c
SET account_id = p.account_id
FROM portals p
WHERE c.portal_id = p.id AND c.account_id IS NULL;
ALTER TABLE categories
ALTER COLUMN account_id SET NOT NULL;
CREATE INDEX IF NOT EXISTS idx_categories_account_id
ON categories(account_id)
WHERE deleted_at IS NULL;
CREATE INDEX IF NOT EXISTS idx_categories_parent_id
ON categories(parent_id)
WHERE deleted_at IS NULL AND parent_id IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_categories_associated_category_id
ON categories(associated_category_id)
WHERE deleted_at IS NULL AND associated_category_id IS NOT NULL;
ALTER TABLE folders
ADD COLUMN IF NOT EXISTS account_id INTEGER,
ADD COLUMN IF NOT EXISTS category_id INTEGER,
ADD COLUMN IF NOT EXISTS parent_id INTEGER,
ADD COLUMN IF NOT EXISTS custom_attributes JSONB DEFAULT '{}';
UPDATE folders f
SET account_id = p.account_id
FROM portals p
WHERE f.portal_id = p.id AND f.account_id IS NULL;
ALTER TABLE folders
ALTER COLUMN account_id SET NOT NULL;
CREATE INDEX IF NOT EXISTS idx_folders_account_id
ON folders(account_id)
WHERE deleted_at IS NULL;
CREATE INDEX IF NOT EXISTS idx_folders_category_id
ON folders(category_id)
WHERE deleted_at IS NULL AND category_id IS NOT NULL;
CREATE INDEX IF NOT EXISTS idx_folders_parent_id
ON folders(parent_id)
WHERE deleted_at IS NULL AND parent_id IS NOT NULL;