问题描述
在django2.0中,对之前已有的models进行字段添加,然后migrations创建表格,使用migrate同步数据库,提示“No changes detected”,然后根据百度,谷歌搜索,根据网上的方法,删除migrations文件夹,删除数据库django_migrations字段,重新创建提示成功,但是数据库中依然没有任何表单建立。
最后准备新建数据库,在新数据库中重新建立表,然后把数据迁移过去,在新的数据库中,使用以上命令,发现依然无法建立表格。每次提示创建成功,但是数据库中依然没有建立新表格。
于是使用sqlmigrate查阅,发现没有任何sql语句建表。再次谷歌百度,发现已有的资料几乎没有,困扰了好多天,无法解决。在此提问。
问题出现的环境背景及自己尝试过哪些方法
删除migrations文件夹,删除数据库django_migrations字段,重新建立全部都无效。网上所有办法都已尝试。
相关代码
贴上migrations建立的相关文件,都创建成功,没有任何报错,但是无法建立新的数据表。
后来发现,在设计数据库表格的时候,在meta里多设置了一个参数。
星号栏这一行,经查询,发现设置该参数后,managed 由于Django会自动根据模型类生成映射的数据库表,如果你不希望Django这么做,可以把managed的值设置为False。
于是豁然开朗,将此字段删除,然后再次执行,makemigrations,成功创建0002文件,migrate后,在数据库成功创建表格。