Django迁移:如何从模型的当前状态生成数据库(旧的syncdb –all)
发布时间:2020-12-20 13:07:23 所属栏目:Python 来源:网络整理
导读:通常,当我开始研究已经开发了一段时间的 django南方项目时,我并不打算应用所有数百次迁移来获取数据库的当前状态.我直接进行syncdb –all从当前模型状态创建数据库然后运行migrate –fake将所有迁移标记为已通过. 在几秒钟内,我有了一个与迁移同步的数据库.
通常,当我开始研究已经开发了一段时间的
django南方项目时,我并不打算应用所有数百次迁移来获取数据库的当前状态.我直接进行syncdb –all从当前模型状态创建数据库然后运行migrate –fake将所有迁移标记为已通过.
在几秒钟内,我有了一个与迁移同步的数据库. Syncdb加载了初始灯具. 99%的案例这就是我所需要的.我很高兴. 我现在该怎么办?不推荐使用Syncdb,并且migrate命令没有忽略迁移的选项,只是从模型类的当前状态创建数据库. 迁移命令使我经历了数月的项目开发过程中的大量迁移.这些迁移有一些我甚至不关心的奇怪错误.它也非常慢,好像在迁移引擎的实现中搞砸了一些东西. 我只想说:“嘿,Django,这是模型,从模型中创建一个数据库,然后假冒所有迁移,让我们从那里开始工作”. 我知道我可以在本地删除所有迁移,为所有应用创建首字母并应用它们,但这似乎是一个非常奇怪的解决方法,相当于syncdb –all. 我错过了什么吗? 解决方法
你可以使用–fake标志来做到这一点.它将忽略所有已通过的迁移并从现在开始迁移.像这样:
python manage.py migrate --fake 此外,如果您要设置迁移的当前状态(例如,假设您在应用上的最后一次迁移是在0004 _…以0004开头) python manage.py migrate --fake my_app 0004 注意 也有一些选择: python manage.py migrate --fake my_app zero python manage.py migrate --fake-initial (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |