Django项目中生成多个初始迁移文件是否正常?
多初始迁移文件生成是否正常?
这种情况是正常的,主要原因如下:
你保留的
initial.py不符合Django迁移文件的命名规范。Django要求迁移文件名必须以数字编号开头(比如0001_initial.py),仅命名为initial.py的文件会被系统忽略。执行makemigrations时,Django会判定应用无任何迁移记录,直接根据当前模型生成新迁移;若模型存在依赖关系(比如多对多字段、继承模型),Django会自动拆分迁移步骤,生成多个初始迁移文件。若你保留的
initial.py是旧的有效迁移,但和当前models.py结构不匹配,Django也会在生成新的初始迁移(0001)后,生成后续迁移填补差异——不过你已删除数据库,这种场景下更大概率是文件名规范问题导致的。
如果想避免这类情况,正确操作流程是:
- 删除所有迁移文件(包括你保留的
initial.py) - 删除数据库后重新创建
- 执行
makemigrations生成全新的初始迁移文件 - 执行
migrate完成数据库初始化
内容的提问来源于stack exchange,提问作者xSkolz
相关产品推荐
相关产品推荐

