自从django 1.2以来我一直在没有数据库迁移的情况下愚蠢地工作,而且我已经说够了,是时候看到1.7带来数据库迁移了。所以南方对我来说都是新手,这是一次艰难的尝试,试图让事情顺利进行,现在我把头发拉出来试图让它在heroku上工作。
我想我可能会因为把它添加到我的项目南方而让事情变得更糟。我最初的问题是从本地转移到heroku,然后能够迁移数据。现在,我尝试在django.db.utils.ProgrammingError: column "campaign_id" of relation "beaconmanager_beacon" already exists
上运行迁移时获得beaconmanager
。
我想我现在需要知道的是:
convert_to_south
会更好吗? schemamigration myapp --auto
还是migrate myapp
。 很抱歉,如果这听起来像初学者的东西,但我确实只是向南走了。
答案 0 :(得分:0)
在heroku和南方迁移中工作,你必须休息这一步。
1)在开发环境中生成schemamigrations文件。 (/.manage.py schemamigration [app_name] --auto)。
2)将这些文件添加到git存储库。
3)将git存储库推送到heroku。
4)在heroku环境中应用迁移(heroku run /.manage.py migrate [app_name])
如果要重置南迁移:
1)删除schemamigration文件。
2)刷新south migration_history表,如果你只想在migration_history中删除一个应用程序,你可以使用firfox addon SqlLite管理器来删除开发环境中的app记录。 (在生产环境中使用数据库管理器提供程序)。
3)将您的应用转换为南(./manage.py convert_to_south [app_name])
4)进行模型更改
5)创建shemamigration文件
6)迁移app