Skip to content

第三站:模型、约束与迁移 ​

课程首页 | 路线映射

本站把临时字典替换成数据库模型,并让状态不变量由数据库共同守护。

运行步骤 ​

bash
python manage.py makemigrations tickets
python manage.py sqlmigrate tickets 0001
python manage.py migrate
python manage.py check

先阅读模型、约束与安全迁移,再学习数据迁移与用户模型边界。

交付物 ​

  • Ticket 有稳定主键、状态选择、负责人、时间戳和查询索引。
  • 迁移文件进入版本控制,提交前读过生成 SQL。
  • 数据迁移可逆,schema 迁移和数据回填可以分批。

深水边界 ​

full_clean() 不会在每次 save() 自动调用;关键不变量需要数据库约束。SQLite 适合教程但锁、DDL、类型和执行计划与生产数据库不同。

练习(先做) ​

  1. 增加 priority 并限制为 1~5。
  2. 写迁移把既有工单默认设为 3,再移除不必要的默认。
  3. 用 makemigrations --check --dry-run 证明模型与迁移同步。

练习答案 | 下一站

用心记录每一步成长