1

を実行するheroku run rake db:migrateと、次のエラーが表示されます。

rake aborted!
PG::Error: ERROR:  relation "roles" does not exist
LINE 4:              WHERE a.attrelid = '"roles"'::regclass
                                        ^
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
              FROM pg_attribute a LEFT JOIN pg_attrdef d
                ON a.attrelid = d.adrelid AND a.attnum = d.adnum
             WHERE a.attrelid = '"roles"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum

Tasks: TOP => db:reset => environment

データベースのリセットも試みheroku run rake db:resetましたが、上記と同じエラーが発生しました。コマンドheroku rakeが機能しないようです。また、ローカル データベース全体を Heorku に移動しようとしましたがheroku db:push、これは機能しています。しかし、移行を実行する必要があります。

4

4 に答える 4

3

これは、Rolify を実行して移行するときに表示される一般的なエラーです。

Rolify 初期化ファイルを確認する必要がありますconfig/initializers/rolify.rb。コマンドconfig.use_dynamic_shortcutsがコメント解除されている場合は、コメントします。変更をプッシュしてから実行しますrake db:migrate。移行が正常に完了したら、戻って行のコメントを解除できます。

use_dynamic_shortcuts問題は、データベースがまだ移行されていない場合、レールが初期化ファイルをロードし、エラーをスローすることです。

于 2013-02-14T16:40:05.430 に答える
0

クラスを参照しているイニシャライザ(または同様のもの)にコードがあるようにRole思えます-環境がスピンアップされたときにテーブルが存在しないため(テーブルをセットアップしようとしている場合でも!)、エラーを生成します。

Role クラスを参照しているコードを削除し、データベースを移行してから、コードを元に戻してみてください。

于 2012-10-01T14:32:12.947 に答える
0

実行してみてください

heroku pg:reset

データベースを正常な状態にリセットしようとします。その後、移行してシードできます。

移行できない場合は、移行が正しくない可能性があります。スキーマを適用してみてください。

heroku rake db:schema:apply
于 2012-10-01T11:40:20.163 に答える
0

すべてをコミットしたことを確認しましたか? 試してgit statusからgit add .git push herokuもう一度やり直してください。

于 2012-10-01T11:24:37.500 に答える