Tsu*_*una 2 python migration django database-migration
我有点知道为什么当我这样做migrate时会给我信息,no migrations to apply但我只是不知道如何解决它
这就是发生的事情。
我update在模型字段中添加了一个名为的新字段。我做了一个migration它创建了一个文件,0003_xxxxx.py然后我做了一个migrate现在这个工作正常。
但是由于某种原因,我必须update从同一模型中删除该字段。所以我删除了它(更多的是评论而不是真正删除代码)然后我做了migration并且migrate删除了db中的字段。(创建0004_xxxxx.py)
但是叹息....我必须再次添加该字段的原因(这就是我只注释掉的原因)但是在migration
我删除之前我删除了0003_xxxx.py and 0004_xxxx.py我想删除这两个文件的文件,因为这实际上是相同的或几乎相同相同的配置,0003_xxxx.py所以我觉得这里没有意义0003_xxxx.py and 0004_xxxx.py......而且当我开始生产时,这只是python运行的另一个额外步骤。
删除这两个文件后,我做了migration创建另一个文件的操作,0003_xxxx.py但是当我这样做时,migrate它给了我以下信息no migrations to apply
我知道通过删除0003_xxxx.py并取回原件0003 and 0004然后再做一个migration (creates 0005_xxxx.py) then migrate 然后将进行更改。我知道这一点,因为我并没有真正删除原件,0003 and 0004我将它移到某个地方以防万一。
但这是为什么呢?有没有办法解决它?
预先感谢您的任何答复
django在您的数据库中migrations按表保留当前日志的记录django_migrations。
迁移是一个链式结构,它依赖于父节点。通过这个表django可以知道执行了哪个迁移文件。
在您的情况下,no migrations to apply因为新创建0003_xxxx.py的记录是该表中的记录,您可以通过删除该表中的该记录来修复它。
如果你想删除一些迁移文件,你需要查看Squashing migrations。