は、私は、コマンドを使用Railsを初期化せずにschema.rbからデータベースを作成するには?私の初期化子の一つで、それが参照しているため、これは失敗し、しかし</p> <p>「ロードすくいデシベル:::スキーマ」
schema.rbからすべての私のテーブルを作成しようとしています(データベースが空であるため)明らかに存在しないモデル/テーブル
これらの行をコメントアウトしてから、schema:loadを再度実行することはできますが、別の方法がありますか?
は、私は、コマンドを使用Railsを初期化せずにschema.rbからデータベースを作成するには?私の初期化子の一つで、それが参照しているため、これは失敗し、しかし</p> <p>「ロードすくいデシベル:::スキーマ」
schema.rbからすべての私のテーブルを作成しようとしています(データベースが空であるため)明らかに存在しないモデル/テーブル
これらの行をコメントアウトしてから、schema:loadを再度実行することはできますが、別の方法がありますか?
テーブルの存在のチェックをイニシャライザに追加できます。
if TheModel.table_exists?
// do something with the model
end
恐らく最も速い方法は、問題のあるイニシャライザをアプリケーションの外にある一時ディレクトリに移動し、スキーマロードを実行することです。
rails new (app)-fixer
をgemfile
をフィーラーアプリにコピーします。database.yml
設定をフィクサーアプリにコピーします。schema.rb
ファイルをフィクサーアプリにコピーします。"rake db:drop db:create db:schema:load"
を実行します。
受け入れられる回答である必要があります。魅力のように働いた – Aakanksha
ActiveAdmin gemのイニシャライザでこの方法を使用すると、gemが完全に不適切に読み込まれてしまいました。とにかく、+1。 – MrDerp