Jef*_*lla 4 python database django heroku django-south
我正在使用Python/Django,我正在尝试使用South来管理我的数据库.在当地环境中工作得很好.当我部署到Heroku时出现问题.问题是当我用它创建迁移时
$heroku run manage.py schemamigration mydjangoapp
Run Code Online (Sandbox Code Playgroud)
看起来它的工作原理(shell确认了它)然而,然后我尝试使用迁移,它将无法正常工作.当我做:
$heroku run python manage.py migrate mydjangoapp
Run Code Online (Sandbox Code Playgroud)
我明白了
The app 'createtuto' does not appear to use migrations
Run Code Online (Sandbox Code Playgroud)
我检查了问题,看起来heroku不允许South在/ myDjangoapp/migrations创建迁移目录.
有什么办法可以让它发挥作用吗?
我尝试使用convert_to_south,但我得到了相同的结果:一开始看起来它有效,但它没有,没有创建迁移.
Cra*_*ens 10
运行"heroku run"时,它将连接到已部署环境的隔离实例.它确实创建了迁移,但是迁移不包含在您的slug中.每次你执行'git push heroku master'时,它会安装你的依赖项并将你的应用程序打包成一个slug.这或多或少是你的应用程序的tarball,它使Heroku能够在你扩展时轻松地将它部署到新的dynos.
为了在Heroku上运行迁移,您将在本地创建迁移,将其签入,然后在heroku上运行迁移.类似的东西:
manage.py schemamigration mydjangoapp
git add mydjangoapp/migrations/*
git commit -m 'adding new migrations'
git push heroku master
heroku run python manage.py migrate mydjangoapp
Run Code Online (Sandbox Code Playgroud)
我成功地遵循Mike Ball的指示:http: //www.mikeball.us/blog/using-south-on-heroku/
就像CraigKerstiens的回答说的那样,你应该首先在本地进行迁移,然后再推送到heroku.例如,在Heroku上进行迁移之前,请确保将Heroku实例转换为南方
heroku run bin/python django_project/manage.py convert_to_south django_app
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4787 次 |
| 最近记录: |