代码之家  ›  专栏  ›  技术社区  ›  Dariush

如何对偏离相应模型的数据库进行初始迁移?

  •  1
  • Dariush  · 技术社区  · 6 年前

    情境:我正在工作的一个项目发生了文件损坏之类的事情。模型是最新版本,但在添加/删除/修改某些列之前,必须回滚SQLite DB。迁移文件都不见了。尝试重新创建迁移会导致新的列出现在初始迁移文件中,因此我既不能进行真正的迁移(由于表已存在),也不能进行伪迁移(因为DB中缺少这些列)。

    在这种情况下,如何进行与数据库中当前列匹配的初始迁移,以便伪造它,然后进行真正的第二次迁移,使表与模型一致?我唯一想到的是手动调整模型以匹配DB模式,进行初始迁移,假装迁移,然后恢复模型的新版本,但我更喜欢自动完成。

    1 回复  |  直到 6 年前
        1
  •  1
  •   e4c5    6 年前

    django公司 inpsectdb

    但首先,要学会使用 git

    1. 第一步,将代码添加到版本控制中。

    2. 删除现有模型文件

    3. 使用inspectdb生成型号.py从数据库中的表中。这不是完美的,你将不得不手动编辑文件,你可能不得不分散在不同的模型文件手动。

    4. 现在删除migrations表的内容

    5. 你说的假移民

    6. 替换生成的型号.py用你的电流型号.py(git签出该文件可以很好地完成这项工作)

    7. 执行makemigrations并再次迁移。