关于python:Django重建所有迁移

Django Rebuild all migrations

我正在Django构建一个应用程序,它使用一个实时/正在使用的数据库。

基本上,由于应用程序的开发,SQL数据库已经发生了一些结构变化,并且它导致了Django的问题,Django将尝试将迁移应用到已经存在的数据库。例如:

在django应用程序中,我将email列标记为唯一的,基于开发数据库,这很好。但是,主数据库现在总是有一个表更改,将email列标记为唯一。Django正在用一把已经存在的钥匙与这把独特的钥匙作斗争。

那么,与最新的SQL数据库结构相比,是否可以清除所有Django迁移并再次进行迁移?


如果您的模型与数据库非常不同步,最简单的选择可能是使用inspectdb从头开始重建模型。

如果模型已经非常接近数据库,那么第一步就是确保模型与数据库完全匹配。您可以为此使用django扩展中的sqldiff。

一旦Django模型与数据库匹配,请按照此答案基于现有数据库模式重新创建迁移。