アプリケーションのデータベースにデータをロードするために使用している 1 回限りのスクリプトがあります。
これは一種の大きなものなので、ここで要旨を説明しました: https://gist.github.com/097fb5a30ce84522077a
記述されたコードは、DATABASE_URL 環境変数で指定されているように、ローカル マシン (またはリモート インスタンス) 上のローカル Postgres インスタンスに対して実行するときに問題なく動作します。
ただし、Heroku からは絶対に動作しません。リンクされた ruby スクリプトを実行すると、次のエラーが表示されます。
~ $ ruby importprofiles.rb
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.9/lib/active_record/attribute_assignment.rb:88:in `block in assign_attributes': unknown attribute: owner_id
(ActiveRecord::UnknownAttributeError)
私のワークフローは基本的に次のとおりです。
- Heroku でアプリを作成する (
heroku create mybot
) - コードを上に押し上げます (
git commit -m 'initial commit' && git push heroku master
) - データベースのセットアップ (
heroku run rake db:setup
) - インスタンスを再起動します (
heroku restart
) - heroku インスタンスで Bash シェルを呼び出します (
heroku run bash
) - Curl を使用して、本番用の profile.ini をサーバーから取得します (
curl http://blah.com/profiles.ini > profiles.ini
) - スクリプトを実行します (
ruby importprofiles.rb
)
ローカルで動作するコードに対して Heroku で不明な属性エラーが発生するのはなぜですか?