【问题标题】:Mezzanine/Django 1.10 migrations: Database tables does not much with migrationsMezzanine/Django 1.10 迁移:数据库表与迁移无关
【发布时间】:2017-08-26 15:11:18
【问题描述】:

我使用的是 Mezzanine (Django 1.10),所以我看不到“db.sqlite3”

我搜索了与我类似的问题,但提供的大多数解决方案都无效。

我创建了一个新模型,后来决定添加一个新字段。我做了“python manage.py makemigrations”,当我查看我的迁移文件夹时,它就在那里;新字段存在。现在,当我运行应用程序并查看管理员时,它给了我一个错误,它说“不存在这样的列”。因此,我认为,我的数据库没有与我拥有的迁移同步。

这就是我所做的: 1. 删除迁移文件夹中的所有内容并重新创建“init.py”。

1.1 运行“python manage.py makemigrations <app_name>”

1.2 运行“python manage.py migrate <app_name>”

1.3 运行“python manage.py runserver”

我实际上可以将我的模型重命名为具有相同字段的不同名称,但是,有时 Django 会给出诸如“不存在这样的表”之类的错误。这样做也会很乏味,因为如果我重命名我的模型,我必须在我导入模型的每个文件中重命名它,例如在 admin.py、forms.py、views.py 等中。

我听说过 South,但它不适用于 Django 1.10。

请帮忙。谢谢!

【问题讨论】:

    标签: django migration models mezzanine makemigrations


    【解决方案1】:

    我刚刚解决了这个问题。由于我使用的是 Mezzanine,所以数据库的名称不一样。查找文件dev.db,它将位于您的manage.py 的同一文件夹中。然后,将其删除。然后,再次运行python manage.py makemigrations 和python manage.py migrate。然后(我希望)它会起作用。

    【讨论】:

      猜你喜欢
      • 2018-03-04
      • 2016-06-07
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 2021-12-20
      • 2014-01-12
      • 2017-03-30
      • 2014-01-13
      相关资源
      最近更新 更多