我正在处理Django项目,遇到了一些麻烦,同事们帮助我解决了。但是,当我们调查此问题时,她删除了一个迁移,因为它似乎引起了一些问题。最后,问题与此无关,但她现在离开了公司。
该项目似乎很好,直到我尝试对模型进行更改并运行“ makemigrations”和“ migrate”,并看到一些错误,并指出Migration <migration_name> is applied before its dependency <migration2> on database 'default'
。
关于我在网上看到的信息以及我的同事告诉我的,我决定删除本地数据库和迁移,然后重新进行。但是,当我尝试从头开始进行迁移时,出现了一些错误,并且尝试恢复生产服务器中的迁移并将其复制到本地项目中,以便进行迁移而不是在本地项目中生成。
但是,即使我从生产服务器获得了“良好”的迁移,我仍然无法正常运行项目,它仍然说在依赖它之前已经应用了迁移。我尝试使用
分别迁移每个迁移python manage.py migrate project_name migration_name
但是它说的是相同的确切错误,所以我不知道我的语法是否不正确或我不了解什么。您会建议我做什么,或者我所做的事情可能出什么问题?我是Django的新手,所以我不知道要看哪里了。
确实必须以正确的顺序应用迁移,并且此顺序由迁移文件中dependencies
类的Migration
属性指示。
有时,由于各种原因(通常是由于在两个不同的分支中创建了两个迁移),所以此属性的值最终是错误的。正确的解决方案是,简单地检查错误消息中指示的迁移文件(以及之间的某些迁移,等等),并手动更正每个文件之间的依赖关系,以使您回到一致的顺序。