edutilos
V2EX  ›  问与答

困扰了很久的 django 数据迁移的问题

  •  
  •   edutilos · Apr 22, 2016 · 1670 views
    This topic created in 3681 days ago, the information mentioned may be changed or developed.

    一个 django 项目,数据库用的 mysql ,修改 models 后(比如增加一个表),执行 makemigrations ,可以顺利生成迁移脚本,脚本中也有这个新增加的表。

    但是执行 migrate 时,总是提示 No migrations to apply ,然后 mysql 里找不到这个新建的表。 把 mysql 的数据库删掉重建,再 migrate 可以解决问题,但不能总是这样干吧,有没有能不损坏现有数据的修改办法?

    1 replies    2016-04-22 18:21:35 +08:00
    edutilos
        1
    edutilos  
    OP
       Apr 22, 2016
    补充一下(刚刚 EDIT 后,居然提示不能编辑,返回后编辑的内容也没缓存):

    执行 DELETE FROM django_migrations WHERE app='myapp1';
    删除 myapp1 下的 migration 脚本
    python manage.py makemigrations
    python manage.py migrate myapp1 ,报错 table already exist myapp1_table1
    重来一遍,执行 migrate --fake myapp1 ,在 mysql 中检查发现新建的表依然不存在
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1496 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:51 · PVG 00:51 · LAX 09:51 · JFK 12:51
    ♥ Do have faith in what you're doing.