第三站:模型、约束与迁移
本站把临时字典替换成数据库模型,并让状态不变量由数据库共同守护。
运行步骤
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、类型和执行计划与生产数据库不同。
练习(先做)
- 增加
priority并限制为 1~5。 - 写迁移把既有工单默认设为 3,再移除不必要的默认。
- 用
makemigrations --check --dry-run证明模型与迁移同步。