跳到主要内容
版本:Current

数据库迁移

目录:db/migrations/。按文件名数字顺序在业务库执行。它们是增量脚本,可部分 IF NOT EXISTS,但 001、005、007 会改写投票数据。

文件作用
001_user_system.sql用户部门/职位;历史多行选票合并;(campaign, voter) 唯一;曾引入后来已删的权重表
002_campaign_rule_weights.sql本场部门+职位票数
003_drop_voter_ballot_weights.sql删除按用户票数表
004_drop_position_vote_defaults.sql删除职位默认票数表
005_campaign_candidate_options.sql候选人名簿
006_drop_ballots_redundant_columns.sql清理 ballots 冗余列
007_ballot_allocations.sql分票表;从旧「整票给一人」回填后丢掉 ballots.candidate_option_id

执行注意​

  • 生产先备份。
  • 不要改已经在生产跑过的历史文件;新变更继续 008_...sql。
  • 新脚本尽量可重复执行,或在文件头写明一次性操作。
  • 改列名后用全文搜索确认 app/ 与 lib/ 中的 SQL 字符串。

全新数据库​

没有仓库内 bootstrap。需要一份已含 Auth.js 表与早期业务表的备份,再补跑上述迁移。