Files
geo/server/migrations/20260408110000_flatten_brand_questions.down.sql
root 36451a613d feat: Introduce AI Brand Monitoring System V5 technical design document
- Added comprehensive technical design document for AI Brand Monitoring System V5, outlining system architecture, data models, sampling strategies, and monitoring protocols.
- Key changes include a shift to a sampling-based trend monitoring approach, updated data collection and storage strategies, and new metrics for performance evaluation.
- Implemented migration scripts to support the flattening of brand questions and versioning of question texts, ensuring historical data integrity and version control.
2026-04-09 14:43:20 +08:00

38 lines
1.1 KiB
SQL

ALTER TABLE brand_questions
ADD COLUMN IF NOT EXISTS current_version_id BIGINT;
CREATE TABLE IF NOT EXISTS brand_question_versions (
id BIGSERIAL PRIMARY KEY,
question_id BIGINT NOT NULL REFERENCES brand_questions(id),
question_text TEXT NOT NULL,
question_hash VARCHAR(64) NOT NULL,
version_no INT NOT NULL,
is_active BOOLEAN NOT NULL DEFAULT true,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT uk_question_version_no UNIQUE (question_id, version_no)
);
CREATE INDEX IF NOT EXISTS idx_question_hash ON brand_question_versions(question_hash);
INSERT INTO brand_question_versions (question_id, question_text, question_hash, version_no, is_active)
SELECT q.id,
q.question_text,
md5(q.question_text),
1,
true
FROM brand_questions q
WHERE NOT EXISTS (
SELECT 1
FROM brand_question_versions v
WHERE v.question_id = q.id
);
UPDATE brand_questions q
SET current_version_id = v.id
FROM brand_question_versions v
WHERE v.question_id = q.id
AND v.version_no = 1;
ALTER TABLE brand_questions
DROP COLUMN IF EXISTS question_text;