【问题标题】:django migration - re-creating the databasedjango迁移 - 重新创建数据库
【发布时间】:2016-10-27 18:30:20
【问题描述】:

我正在运行 python 2.7 和 django 1.8。

I have this exact issue.

作为评论发布的答案是:What I did is completely remake the db, erase the migration history and folders.

我对删除和创建数据库非常不确定。

我正在运行一个 PostgreSQL 数据库。如果我删除/删除数据库然后运行迁移,数据库会从迁移中重建吗?我不想删除数据库然后陷入更糟糕的情况。

【问题讨论】:

  • 您可以随时备份它。所有架构信息应该在迁移中,数据。使用dumpdata/loaddata。不过我不得不说,我不完全确定删除数据库是否好,但这也从未发生在我身上。
  • @Wtower 谢谢。我可以删除有问题的表,然后运行迁移来创建表吗?
  • 欢迎。可能不是,这不是迁移的工作方式。
  • 在现有模型中添加字段是否会产生问题?我想知道你执行的创建迁移的命令
  • @Mohammad Mustaqeem 我添加了新字段,然后我使用了python manage.py makemigrations,然后是python manage.py migrate。然后我运行python manage.py migrate --fake 完成迁移。然后在网页中出现错误column core_coverlettersaveddetails.cover_letter_saved_details_format does not exist

标签: python django postgresql django-models django-migrations


【解决方案1】:

这是我为纠正此问题所做的:

首先,对数据做一个脚本,这样当数据库被销毁和重新创建时,数据可以很容易地重新创建。

接下来运行以下脚本来重置数据库(这将删除所有 db 数据并删除 db 表)。

然后运行以下脚本重新创建数据库:

python manage.py reset_db

然后,运行以下脚本重新创建数据库:

python manage.py migrate

接下来,运行脚本来创建数据库数据。

最后,运行以下脚本来启动服务器:

python manage.py runserver

就是这样。

我希望这可以帮助一些人。

【讨论】:

    【解决方案2】:

    实际上没有必要这样做,但为了确保您做得正确,请考虑以下事项:

    1. 确保在迁移过程中进程或您的应用没有访问(写入)您的数据库。我遇到了很多麻烦。

    2. 如果您的服务器正在运行,请确保将其关闭。有一些问题会在服务器运行时阻止迁移或更新结果,尤其是在生产模式下。

    3. 如果您在以开发模式迁移后在生产环境中进行迁移,请确保没有来自开发的文件。它们的名称相似,因此系统会抛出有关迁移已存在的错误。

    4. 记住默认值。如果要迁移以在预先存在的表中包含新列,则必须提供默认值以将这些行填充到新列中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      相关资源
      最近更新 更多