2017-04-18 5 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 존재 여부되는지 확인합니다. 나는 admin_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