Len*_*ran 7 postgresql ruby-on-rails
我刚刚通过常规迁移创建了一个新的自定义Postgres功能.
class CreateBestBowlingFigureFunction < ActiveRecord::Migration
def change
execute "CREATE OR REPLACE FUNCTION ......"
end
end
Run Code Online (Sandbox Code Playgroud)
迁移后,schema.rb中不提供此新功能.
根据官方文档,我db:schema:load
在运行测试之前使用该命令创建模式.
那么,在运行测试之前创建自定义函数的最佳做法是什么?
cra*_*sky 14
schema.rb
不处理(参见Rails 3.2.x指南的6.2节和Rails 4指南的7.2节)视图或自定义功能.我们的应用程序中有一个视图,架构不适用于它.
我们使用structure.sql
相反,因为这正确地设置了我们的视图,我的感觉同样适用于自定义函数.要使用structure.sql而不是schema.rb:
这是通过config.active_record.schema_format设置在config/application.rb中设置的,它可以是:sql或:ruby.
您还可以使用schema.rb
(对于常规表和索引)和structure.sql
(对于自定义函数)的组合.要为测试环境设置此组合:
bundle exec rake db:schema:load
bundle exec rake db:structure:load
Run Code Online (Sandbox Code Playgroud)
在此设置中,请注意必须手动维护structure.sql,而Rails将为您维护schema.rb.
归档时间: |
|
查看次数: |
1878 次 |
最近记录: |