加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读