1

私のレールアプリには model がありEventsます。このガイドhttps://devcenter.heroku.com/articles/export-from-heroku-postgresに従って作成されたいくつかの列がありますrake db:schema:dump

Eventここで、モデルにいくつかの新しい列を追加したいと思います。アプリを編集schema.rbして再起動しようとしましたが、うまくいかないようです。適切な進め方を知っている人はいますか?

- - 編集 - - - -

具体的には、この行を のEventモデルに追加しましたschema.rb

t.datetime "date_time"

リンクをクリックして Rails アプリにイベントを追加すると、次のエラーが表示されます。

undefined method `date_time' for #<Event:0x007fdb59a87118>
4

2 に答える 2

2

このschema.rbファイルは、データベース スキーマの現在の状態を表すものであり、読み取りではなく、データベース移行プロセスによって書き込まれます。

新しい列を追加する場合は、移行を作成します

$ rails generate migration AddNewEventStuff
$ vim db/migrate/add_new_event_stuff*.rb

次に、列を追加します。

class AddNewEventStuff < ActiveRecord::Migration
  def change
    add_column ...
  end
end

を除くすべてadd_columnが既にあるはずです。移行が完了したら、 arake db:migrateを実行して完了です。にいくつかの変更が表示されるはずですschema.rb

詳細および移行を構築するさまざまな方法については、Ruby on Rails 移行ガイドを参照してください。

于 2012-11-16T03:55:07.050 に答える
0

試してみてくださいheroku run rake db:schema:load。そうは言っても、それはおそらく間違ったやり方です。代わりに、移行を介してスキーマに変更を加えてから、それを実行する必要がありますheroku run rake db:migrate

于 2012-11-16T03:50:42.903 に答える