2017-04-18 55 views
0

我想在我的rails應用程序中添加activeadmin的管理界面。我已經在本地成功完成,但在部署到heroku後出現錯誤。 我已經做了所有的事情,是必要的數據庫遷移,如:爲什麼我的活動管理員顯示在本地工作的錯誤?

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

我已經改變了生產,以查看錯誤:

config.consider_all_requests_local = true 

當我瀏覽到[mysitename].herokuapp.com/admin它給像下面的錯誤:

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,看看admin_usersschema.rb存在與否。我發現在schema.rbadmin_users表。

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

該表未在heroku上創建.. – Achyut

+0

您需要運行'db:migrate'並查看錯誤是什麼。您可以通過運行'heroku run bash'來獲得交互式shell會話。 –

回答

0

當我看到錯誤時,我嘗試了很多,最終成功。主要錯誤是

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

這就是說關係admin_users不存在。這意味着遷移正在嘗試更改已在表中存在的admin_users。但實際上它不存在於我們必須創建它的表格中。

因此,通過主動管理/db/migrate/xxxxxxxxxxxxx_add_devise_to_admin_users.rb創建的遷移文件,用create_table :admin_users do |t|

最後用createchange_table :admin_users do |t|更換change,推到Heroku的和運行heroku run rake db:migrate

相關問題