2012-03-15 5 views
4

私はPython/Djangoに取り組んでいます。私はサウスを使ってデータベースを管理しようとしています。地元の環境では素晴らしい仕事をしています。私はHerokuに展開するときに問題が発生します。問題は(シェルがそれを確認した)私はサウスヘロクでDjangoのアプリケーションのために働く方法

$heroku run manage.py schemamigration mydjangoapp 

で移行を作成するときに、それが動作するように見えていることである、しかし、その後、私は、マイグレーションを使用しようと、それは動作しません。私がするとき:

$heroku run python manage.py migrate mydjangoapp 

私はこれを得る。

The app 'createtuto' does not appear to use migrations 

私はこの問題にチェックし、Herokuのは、南/ myDjangoapp /移行で移行ディレクトリを作成することはできませんように見えます。

動作させるためにできることはありますか?

私はconvert_to_southを使用しようとしましたが、同じ結果が得られました。最初は動作していたように見えますが、移行は作成されませんでした。

+1

なぜHerokuで移行を作成しようとしていますか? Herokuは、単純なコードを使用する生産環境でなければなりません。これらのすべては、あなたの地域の開発環境で行う必要があります。 –

+1

@ChrisPrattあなたはどういうことを言っていますか?あなたのプロダクションアプリケーションが時間の経過と共にどのように進化すると思いますか? – HorseloverFat

+0

@ HorseloverFat:本番環境での移行は決して実行しません。スキーマをローカルに移行します。変更をテストします。そして、もしあなたの組織がDBAを持っていれば、SQLを生成して書くことができます。自分ですべてをやっているのであれば、盲目的に移行するのではなく、SQLを適用する方が良いでしょう。変更を加える前にデータベースに適用される正確な変更を再確認できるからです。 –

答えて

10

'heroku run'を実行すると、展開された環境の独立したインスタンスに接続します。マイグレーションは作成されますが、マイグレーションはスラッグ内に含まれません。 'git push heroku master'を実行するたびに、依存関係がインストールされ、アプリケーションがスラッグにパッケージ化されます。これは、多かれ少なかれ、Herokuがスケー​​ルアップする際に、容易に新しいダイノスに展開できるようにするアプリケーションのタールボールです。

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 
+0

これはうまくいきませんでした。あなたが提案したことを試してみると、私はこれを持っています: –

+0

!実際のマイグレーション中にエラーが見つかりました!中止する。 -------------- ! の実行をサポートしていないデータベースがあるため!トランザクションのスキーマ変更文は、 でした!移行の間に暫定的な状態にしておきます。 ------------------------- –

+0

私の唯一の選択肢は、DBをバックアップし、 "manage.py reset myapp"を実行することです再度syncdbを実行してバックアップから復旧してください。 –

5

は私が成功し、ここでマイク・ボールからの方向に従ってください: 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 
+1

リンクが次のように変更されました:http://www.mikeball.us/blog/using-south-on-heroku/ – Medeiros

+0

私はちょうどこれに追加します(リンク先のブログにコメントする方法はありません)。ローカルとHerokuの両方で、最初に偽の移行を行わなければなりませんでした。 – LaundroMat

関連する問題