簡體   English   中英

Spree找不到表'spree_countries'

[英]Spree Could not find table 'spree_countries'

我已經在Rails 3.2.17上克隆了一個現有的Spree項目。

Rake db:create可以運行,但是在運行遷移,種子或Rails時,我遇到了此錯誤。

Could not find table 'spree_countries'

我努力了

rake db:reset

和各種狂歡生成器,但都返回相同的錯誤。

錯誤

這是當我像OP一樣對Rake做任何事情時遇到的錯誤:

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  
  relation "spree_countries" does not exist

問題

在Spree中設置國家/地區最常見的解決方案如下:

配置/初始化/ spree.rb

Spree.config do |config|
  country = Spree::Country.find_by_name('Mexico')
  config.default_country_id = country.id if country.present?
end

在刪除數據庫並嘗試重新創建數據庫之前,此方法將正常工作, 並且不要覆蓋config / initializers / spree.rb

Overwrite .../config/initializers/spree.rb? (enter "h" for help) [Ynaqdh] n

重新創建數據庫時,“國家/地區”表不可用,並且您遇到“ 找不到表'spree_countries”錯誤。 這很討厭,因為導致該錯誤的初始化代碼可以工作一段時間,並且僅在很久以后,當您決定刪除數據庫時,該錯誤才會出現。

解決方案

在Google網上論壇上建議的代碼是查找country_id並為其分配-您可以puts ID放在外面或在spree_countries上使用SQL查詢。

配置/初始化/ spree.rb

Spree.config do |config|
  # Sets default country to Mexico
  config.default_country_id = 157
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM