当前位置: 首页 > 面试题库 >

如何在Django 1.7中重置迁移

祖迪
2023-03-14
问题内容

(我知道有一个与此标题相同的标题,但问题有所不同)。

我设法使开发机器迁移和生产迁移不同步。

我有一个使用South的Django应用。我有自己的工作流程,效果很好(这可能不是正确的处理方式,但我没有任何问题)。

基本上,我有一个脚本,可将生产数据库转储复制到我的开发计算机上。它还复制了迁移文件。这样,两者就同步了,我可以像往常一样运行South命令。

现在,我已升级到1.7,并开始使用迁移。当我使用以前的工作流程(从生产环境复制数据库转储和迁移文件)时,它没有检测到开发计算机上的更改。

我已经阅读了迁移文档,并且看到使用它的正确方法是:

  1. 在我的开发计算机上运行“进行迁移”和“迁移”。
  2. 在我的devlopemnt机器上运行“ migrate”以实际进行数据库更改
  3. 复制更改,包括迁移文件。
  4. 在生产机器上运行“迁移”。(没有“ makemigrations”步骤)
    无论如何。现在都一团糟。我想“重置”我的迁移并从头开始,从现在开始做正确的事情。

我需要做什么?

  1. 删除迁移表的内容(在两台计算机上)?
  2. 删除迁移文件夹的内容?(包括init .py文件)。
  3. 按照文档中的说明开始新的迁移。
    我错过了什么吗?为什么从生产中复制所有内容(数据库和迁移文件)之后没有在我的开发计算机上检测到任何更改,这是有原因的

问题答案:

我将在两种环境下都执行以下操作(只要代码相同)

  1. 删除你的迁移文件夹
  2. django_migrations WHERE app =中删除<your app name>。你也可以截断该表。
  3. python manage.py makemigrations
  4. python manage.py migrate --fake

在此之后,所有更改都应在整个环境中检测到。



 类似资料:
  • Django1.7引入了数据库迁移。 我知道忽略迁移可能是一个不好的做法,因为这部分代码将不会被测试。但事实并非如此:我在CI测试服务器(jenkins)中运行完整的迁移。我只想跳过本地测试中的迁移,因为速度很重要。 一些背景: 在Django1.6之前,在使用South时,我一直使用SOUTH_TESTS_MIGRATE设置: 可以使用--keepDB选项在测试运行之间保留测试数据库。这样做的好

  • 我工作的应用程序,一直使用到现在,我想迁移到。我是使用的新手,参考了,但对于某些部分,我不清楚我的中的配置应该如何。 当前文件如下所示:

  • 问题内容: 我怎样才能 重新 在一个领域? 我希望它从头开始计算。 问题答案: 您可以使用以下方法重置计数器: 对于InnoDB,您不能将值设置为小于或等于当前最大索引。(引自ViralPatel): 请注意,您不能将计数器重置为小于或等于已使用的任何值。对于MyISAM,如果该值小于或等于AUTO_INCREMENT列中当前的最大值,则该值将重置为当前的最大值加1。对于InnoDB,如果该值小于

  • 本文向大家介绍Django1.7+python 2.78+pycharm配置mysql数据库,包括了Django1.7+python 2.78+pycharm配置mysql数据库的使用技巧和注意事项,需要的朋友参考一下 配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目。之后要面临的问题就来了,之前一直使用的是sqlite作为开发数据库进行学习,按照之

  • 问题内容: 在PostgreSQL中,我可以做这样的事情: 是否有Oracle等效产品? 问题答案: 这是一个很好的过程,可以将Oracle专家Tom Kyte的任何序列重置为0 。在下面的链接中也对正反两方面进行了精彩的讨论。

  • 我用登录名和密码启动了主窗口(class)和模式窗口(class)。而主舞台= 如果用户有效,则关闭模式窗口。如何重置主阶段的效果 谢谢主要类别: 公共类主应用程序扩展{ } 登录类: 公共类登录{ }