2013-02-23 72 views

回答

5

您可以在初始化程序中添加表格存在檢查。

if TheModel.table_exists? 
    // do something with the model 
end 
+0

我最終在ActiveAdmin gem的初始化器中使用了這種方法,因爲該gem加載完全不正確。總之,+1。 – MrDerp 2015-01-10 19:26:01

28

可能最快的方法是將違規初始化程序移動到應用程序外部的臨時目錄,然後運行模式加載。但是,如果不工作,或者是因爲某些原因的選項,你總是可以解決方法是創建一個光禿禿的骨頭Rails應用做架構負載:

  1. 創建一個新的Rails應用程序:rails new (app)-fixer
  2. 將您的gemfile(除非有特定例外情況)複製到修復程序應用程序。
  3. 將您的database.yml配置複製到修復程序應用程序。
  4. 將您的schema.rb文件複製到修復程序應用程序。
  5. 根據需要爲您的應用程序執行所有適當的「軟件包安裝」命令。
  6. 然後運行"rake db:drop db:create db:schema:load"

,將建立與從頭開始一個新的數據庫,根據您當前的模式。

+0

應該是公認的答案。像魅力一樣工作 – Aakanksha 2018-02-09 04:41:50

相關問題