Scert/backend/internal/database/migrations/postgres/0011_resource_projects.sql
xuans 7284958819 完善域名服务器项目归属与数据库关联约束
保存资源项目、所有者和操作人,接口从会话记录归属,普通更新保留创建信息。
新增三库第十一版迁移、同项目绑定约束和 SQLite 触发器保护,补充迁移回滚重试、仓储、接口及备份恢复测试。
本次整理验证:后端构建、静态检查、关联改造针对性测试和 CLI 包测试通过。
范围说明:项目成员权限及其他资源归属尚未完成;本次未重新执行外部数据库实库、独立程序及生产部署验收。
2026-09-28 10:45:00 +08:00

17 lines
1.3 KiB
SQL

ALTER TABLE domains ADD COLUMN project_id TEXT NOT NULL DEFAULT 'default';
ALTER TABLE domains ADD COLUMN owner_id TEXT NOT NULL DEFAULT '';
ALTER TABLE domains ADD COLUMN created_by TEXT NOT NULL DEFAULT '';
ALTER TABLE domains ADD COLUMN updated_by TEXT NOT NULL DEFAULT '';
ALTER TABLE servers ADD COLUMN project_id TEXT NOT NULL DEFAULT 'default';
ALTER TABLE servers ADD COLUMN owner_id TEXT NOT NULL DEFAULT '';
ALTER TABLE servers ADD COLUMN created_by TEXT NOT NULL DEFAULT '';
ALTER TABLE servers ADD COLUMN updated_by TEXT NOT NULL DEFAULT '';
ALTER TABLE domain_servers ADD COLUMN project_id TEXT NOT NULL DEFAULT 'default';
CREATE UNIQUE INDEX idx_domains_project_id ON domains(project_id, id);
CREATE UNIQUE INDEX idx_servers_project_id ON servers(project_id, id);
CREATE INDEX idx_domain_servers_project ON domain_servers(project_id);
ALTER TABLE domains ADD CONSTRAINT fk_domains_project FOREIGN KEY (project_id) REFERENCES projects(id);
ALTER TABLE servers ADD CONSTRAINT fk_servers_project FOREIGN KEY (project_id) REFERENCES projects(id);
ALTER TABLE domain_servers ADD CONSTRAINT fk_binding_domain_project FOREIGN KEY (project_id, domain_id) REFERENCES domains(project_id, id);
ALTER TABLE domain_servers ADD CONSTRAINT fk_binding_server_project FOREIGN KEY (project_id, server_id) REFERENCES servers(project_id, id);