Django中进行migrate无效,进行sqlmigrate查询发现创建语句都为空。无解。。网上没有任何资料。

问题描述

在django2.0中,对之前已有的models进行字段添加,然后migrations创建表格,使用migrate同步数据库,提示“No changes detected”,然后根据百度,谷歌搜索,根据网上的方法,删除migrations文件夹,删除数据库django_migrations字段,重新创建提示成功,但是数据库中依然没有任何表单建立。

最后准备新建数据库,在新数据库中重新建立表,然后把数据迁移过去,在新的数据库中,使用以上命令,发现依然无法建立表格。每次提示创建成功,但是数据库中依然没有建立新表格。

于是使用sqlmigrate查阅,发现没有任何sql语句建表。再次谷歌百度,发现已有的资料几乎没有,困扰了好多天,无法解决。在此提问。

clipboard.png

问题出现的环境背景及自己尝试过哪些方法

删除migrations文件夹,删除数据库django_migrations字段,重新建立全部都无效。网上所有办法都已尝试。

相关代码

贴上migrations建立的相关文件,都创建成功,没有任何报错,但是无法建立新的数据表。

clipboard.png

阅读 6.1k
1 个回答
✓ 已被采纳新手上路,请多包涵

后来发现,在设计数据库表格的时候,在meta里多设置了一个参数。

clipboard.png

class Meta:
    ***managed = False
    db_table = 'desgin'
    verbose_name = "设计列表"  # 单数数据表可读名称
    verbose_name_plural = "设计列表"  # 复数数据表可读名称
   

星号栏这一行,经查询,发现设置该参数后,managed 由于Django会自动根据模型类生成映射的数据库表,如果你不希望Django这么做,可以把managed的值设置为False。

于是豁然开朗,将此字段删除,然后再次执行,makemigrations,成功创建0002文件,migrate后,在数据库成功创建表格。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题