2017-09-26 41 views
2

私のアプリでは、データベース移行のためフラスコスクリプトとフラスコマイグレーションを使用していますが、すべてがローカルで動作します。とき、私はherokuのFlaskデータベース移行

heroku run python manage.py db init 

を実行するには、この出力を作成します。

Running python manage.py db init on ⬢ fpds-scheduler... up, run.1290 (Free) 
    Creating directory /app/migrations ... done 
    Creating directory /app/migrations/versions ... done 
    Generating /app/migrations/README ... done 
    Generating /app/migrations/script.py.mako ... done 
    Generating /app/migrations/alembic.ini ... done 
    Generating /app/migrations/env.py ... done 
    Please edit configuration/connection/logging settings in '/app/migrations/alembic.ini' before 
    proceeding. 

しかし、私はheroku run python manage.py db migrateを実行したとき、私はheroku run bashを実行し、私ができる私のディレクトリを見てみると、私はエラーに

alembic.util.exc.CommandError: Path doesn't exist: 'migrations'. Please use the 'init' command to create a new scripts folder. 

を取得しますmigrationsフォルダがないことを参照してください...

aveはコマンド--app fpds-schedulerを実行してみましたが、どちらも問題なく動作しています。

何がうまくいかないのですか?

答えて

0

は、Heroku上で移行を作成してはいけません。ファイルシステムは一時的であり、プログラム的に書かれたものは呼び出し間で失われます。

マイグレーションをローカルで作成し、バージョンコントロールにコミットし、展開してからHerokuでのみ実行する必要があります。

+0

わかりました。 – spitfiredd

+0

明らかにするために、マイグレーションフォルダをローカルに作成し、ヒロクのマイグレーション/アップグレードを行いますか? – spitfiredd

+0

ええ、 'herokuローカルdb init'を実行し、結果をコミットします。 –

関連する問題