2016-08-22 128 views
0

我使用的开发环境和Postgre生产SQlite的PG :: UndefinedTable:ERROR:关系“----”不存在

在开发一切工作得很好但是,当我尝试重置。并迁移生产数据库,我收到以下消息:

PG::UndefinedTable: ERROR: relation "priceranges" does not exist 
... 
FOREIGN KEY ("pricerange_id") 
REFERENCES "priceranges" ("id") 

我的场馆模型:

belongs_to :pricerange, :class_name => "PriceRange" 

我pricerange迁移:

class CreatePriceRanges< ActiveRecord::Migration[5.0] 
    def change 
    create_table :price_ranges do |t| 
    t.string :price_description 
    t.timestamps 
    end 
    end 
end 

任何想法?

回答

3

您在迁移中创建的表名是price_ranges,而不是priceranges。除非您重写PriceRange模型中的表名称,否则pricerange关联Venue将查找名为price_range_id而不是pricerange_id的外键。我会建议坚持与约定,并使您的协会:

belongs_to :price_range # automatically uses class PriceRange, and foreign key `price_range_id` 
+0

我纠正了你说的。但是,当我建立了我的场馆模型,我用pricerange:引用,在我的移民产生如下代码: t.references:pricerange,foreign_key:真 我改PRICE_RANGE,reseted我的数据库,但此消息仍然存在,并会场模型继续创建pricerange_id。我在这里做错了什么? – user1301037

+0

我不能说,没有看到你的代码。我怀疑你的代码或模式中的某处还有'pricerange'的引用。您可以尝试全局搜索并将'pricerange'替换为'price_range',然后'rake db:drop db:create db:migrate'。 –

相关问题