Iva*_*var 2 postgresql activerecord rspec ruby-on-rails rails-activerecord
使用Rails 3.2.18和Postgres,我有一些表,我已经为其创建了一个视图,以最小化ActiveRecord加载的数据.在应用程序中,一切似乎都正常运行,但当我尝试运行Rspec时,我得到:
ActiveRecord::StatementInvalid:
PG::UndefinedTable: ERROR: relation "properties_view" does not exist
Run Code Online (Sandbox Code Playgroud)
('properties_view'是'properties'表中的视图)
我该怎么做才能确保Rspec从Postgres正确加载视图?
Rails并不真正理解像视图这样的"高级"数据库概念,所以它们不会出现在你的schema.rb
.当rspec设置其测试数据库时,它将schema.rb
用于创建数据库模式,因为您将无法找到您的视图schema.rb
,您将无法在测试数据库中找到您的视图,而rspec将使用这些视图并且一切都会崩溃.
解决方案是切换schema.rb
到structure.sql
.你应该能够更新你config/application.rb
说:
config.active_record.schema_format = :sql
Run Code Online (Sandbox Code Playgroud)
然后执行a rake db:structure:dump
生成structure.sql
文件.完成后,schema.rb
从文件系统和版本控制中删除,添加structure.sql
,然后重试.
归档时间: |
|
查看次数: |
640 次 |
最近记录: |