アプリなどを開発するブログ

React Native / Swift / Ruby on Railsなどの学習メモ。


HerokuでSouthを使う

HerokuでSouthを使う場合、いきなり

$heroku run python manage.py migrate mydjangoapp

とかやってると、

The app 'createtuto' does not appear to use migrations

とかって言われる。

southはmigrate/ ディレクトリをつくってその中にmigration用のファイルを作るんだけど、
heroku run コマンドではファイルを書き込めないので、
うまくいかないようです。

一度ローカルでmigrationファイルをつくって、それをherokuにpush、
その後migrateを実行すればうまくいくようです。

# ローカルでmigrationファイルをつくる
manage.py schemamigration mydjangoapp  

# git でherokuにpushする
git add mydjangoapp/migrations/*
git commit -m 'adding new migrations'
git push heroku master  

# heroku上でmigrateを実行
heroku run python manage.py migrate mydjangoapp

http://stackoverflow.com/questions/9724000/how-to-make-south-works-in-heroku-for-a-django-app

既にherokuにホスティングされているappに適応したい場合

1. migrationファイルをheroku上のappに合わせる

2. heroku に push

3. --fakeオプションをつけてmigrateする

あとはよしなに。