【发布时间】:2012-04-01 05:06:48
【问题描述】:
我正在研究 Python/Django,我正在尝试使用 South 来管理我的数据库。在当地环境中工作得很好。当我部署到 Heroku 时,问题就来了。问题是当我使用
创建迁移时$heroku run manage.py schemamigration mydjangoapp
看起来它可以工作(shell 确认它),但是,然后我尝试使用迁移,它不会工作。当我这样做时:
$heroku run python manage.py migrate mydjangoapp
我明白了;
The app 'createtuto' does not appear to use migrations
我检查了这个问题,看起来 heroku 不允许 South 在 /myDjangoapp/migrations 处创建迁移目录。
有什么我可以做的吗?
我尝试使用 convert_to_south,但得到了相同的结果:一开始它看起来有效,但它没有,没有创建迁移。
【问题讨论】:
-
你为什么要在 Heroku 上创建迁移? Heroku 应该只是您使用原始代码的生产环境。所有这些东西都应该在你的本地开发环境中完成。
-
@ChrisPratt 你在说什么?您希望您的生产应用程序随着时间的推移如何发展?
-
@HorseloverFat:您永远不会针对生产运行迁移。您在本地迁移架构。测试更改。然后生成或编写 SQL 以在生产中进行这些更改,如果您的组织有 DBA,最好在 DBA 的协助下进行。如果您自己做所有事情,最好应用 SQL,而不是盲目迁移,因为这样您可以在进行更改之前仔细检查将应用于数据库的确切更改。
-
@ChrisPratt 您可能是对的,但这仅可能发生在 a) 具有小型数据库的站点,b) 具有巨额预算的站点,或 c) 具有自定义(非 ORM 生成)表的站点.诸如此类的任何工具的目的都是赋予一两个开发人员很大的权力;这确实有风险,因为人们必须相信这个工具,但这并不会使提出这个问题变得荒谬。
标签: python database django heroku django-south