2017-04-18 9 views
0

私のレールアプリにactiveadminという管理インターフェースを追加しようとしています。私は正常にローカルに完了しましたが、herokuに展開した後にエラーが発生します。 私のようなデータベースの移行に必要なすべてのもの行っている:私は[mysitename].herokuapp.com/adminに移動すると、それは以下のようなエラーになりますアクティブな管理者が、ローカルでperfetly動作していたエラーを表示するのはなぜですか?

config.consider_all_requests_local = true 

:私は、エラーを確認するために生産を変更した

heroku run rake db:create 
heroku run rake db:migrate 

を:

ActiveRecord::StatementInvalid in ActiveAdmin::Devise::SessionsController#new

PG::UndefinedTable: ERROR: relation "admin_users" does not exist LINE 8: WHERE a.attrelid = '"admin_users"'::regclass^: SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod, (SELECT c.collname FROM pg_collation c, pg_type t WHERE c.oid = a.attcollation AND t.oid = a.atttypid AND a.attcollation <> t.typcollation), col_description(a.attrelid, a.attnum) AS comment FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"admin_users"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum

そして、私は私のHerokuのクローンを作成し、schema.rbadmin_usersが存在するかどうかを確認します。私はテーブルがschema.rbにあることを発見しました。

マイroutes.rbは次のとおりです。

Rails.application.routes.draw do 
    devise_for :admin_users, ActiveAdmin::Devise.config 
    ActiveAdmin.routes(self) 
    devise_for :users 
    resources :users, only: :show 
    resources :posts do 
    resources :comments 
    resources :upvotes, only: :create 
    resources :downvotes, only: :create 
    end 
    root 'posts#index' 
end 

active_admin.rbは次のとおりです。

ActiveAdmin.setup do |config| 

    config.site_title = "Instapost" 

    config.authentication_method = :authenticate_admin_user! 

    config.current_user_method = :current_admin_user 

    config.logout_link_path = :destroy_admin_user_session_path 

    config.comments = false 

    config.comments_menu = false 

    config.batch_actions = true 

    config.localize_format = :long 

    config.favicon = 'favicon.ico' 

end 

私は多くのことを検索しました。しかし、どんな解決策もこの問題を解決することはできませんでした。誰かがこれについて知っていれば、私は問題を解決するのを助けてください。

+0

テーブルが正常にHerokuの上に作成された実行? –

+0

テーブルがヒロクで作成されていませんでした。 – Achyut

+0

'db:migrate'を実行して、エラーを確認する必要があります。 'heroku run bash'を実行すると、対話的なシェルセッションを得ることができます。 –

答えて

0

エラーが表示されたので、私は多くを試してみました。主なエラーがこれは関係admin_usersが存在しないことを言う

PG::UndefinedTable: ERROR: relation "admin_users" does not exist

です。これは、移行がテーブルに既に存在するadmin_usersを変更しようとしていることを意味します。しかし実際には、それを作成する必要があるテーブルには存在しません。

したがって、アクティブな管理者/db/migrate/xxxxxxxxxxxxx_add_devise_to_admin_users.rbによって作成された移行ファイルで、最後にcreate_table :admin_users do |t|

change_table :admin_users do |t|としてcreatechangeを置き換える、Herokuのにプッシュし、heroku run rake db:migrate

関連する問題