【问题标题】:Unable to migrate Django app with South on Heroku无法在 Heroku 上使用 South 迁移 Django 应用程序
【发布时间】:2012-04-26 00:18:57
【问题描述】:

我已经在我现有的 Django 应用上安装了 South。这个 Django 应用也在 Heroku 上。

没有对模型做任何更改,我在本地完成了以下命令:

  • manage.py schemamigration app_name --initial
  • manage.py migrate --fake

然后我尝试推动 heroku master,并迁移到那里。但我收到以下信息:

Running migrations for app_name:
- Nothing to migrate.
  - Loading initial data for notecards.
No fixtures found

如果我尝试伪造 Heroku 迁移,我会收到相同的消息。

我想,这可能没问题,因为从技术上讲,由于数据库保持不变,因此无需迁移任何内容。

所以我对其中一个模型做了一个小改动,并做了以下操作:

  • manage.py schemamigration app_name --auto
  • manage.py migrate

然后我推送到 Heroku 并尝试迁移到那里,但我仍然收到以下信息:

Running migrations for app_name:
- Nothing to migrate.
  - Loading initial data for notecards.
No fixtures found

对我做错的任何帮助都会很棒。谢谢。

【问题讨论】:

  • 我的迁移文件夹现在有两个条目 0001(即 init)和 0002。但是,问题发生在我进行第二次迁移之前。
  • 你确定你已经提交了新的迁移吗?检查 Heroku 上的迁移文件夹并确保那里实际上没有运行迁移。
  • 这让我走上了正轨。我需要递归删除以前的迁移,然后从新的迁移开始。谢谢

标签: python django heroku


【解决方案1】:

对于遇到此问题的任何其他人,以及我自己的参考。感谢 Chris Pratt 让我走上正轨。

这是通过以下方式解决的:

本地:

递归删除任何旧迁移git rm -r migrations

刷新旧数据库(这会删除所有数据,但对我来说这不是问题)manage.py flush

删除应用文件夹中的迁移文件夹

运行初始架构迁移manage.py schemamigration --initial

运行假迁移manage.py migrate --fake

推heroku大师

在 Heroku 上:

迁移heroku run python manage.py migrate app_name

然后,您可以在本地运行 migrate --auto,推送到 heroku,然后运行 ​​migrate app_name

【讨论】:

  • 这个答案似乎不起作用,除了几乎无法理解。
  • 答案的哪一部分你不明白?它本质上只是递归地删除迁移,然后创建一个新的迁移。它至少在撰写本文时有效,但它完全消除了迁移 - 也许这不是您想要的。也许您最好自己创建问题并让其回答。
  • 我知道这是不久前的事了,但是你有没有找到一种方法来处理这个问题而无需破坏你的数据库?只是好奇,因为我有同样的问题,而且我只核对本地数据库,这在“技术上”没什么大不了的,这只是一个麻烦。
  • 抱歉,我的项目仍在开发中,所以完全删除迁移不是问题。
猜你喜欢
  • 2013-06-23
  • 2013-09-01
  • 2021-08-07
  • 2012-03-03
  • 2012-08-16
  • 2019-04-17
  • 1970-01-01
  • 2011-08-14
  • 2011-03-11
相关资源
最近更新 更多