在ActiveRecord(Rails)中有什么类似create_view的东西吗?

man*_*anu 7 ruby-on-rails

我需要在我的数据库中创建一个视图.我知道我可以使用ActiveRecord使用create_table方法创建表.我想知道是否有类似create_table的东西,但是会创建一个视图.

Sté*_*hen 7

不是.这是ActiveRecord"自以为是"的事情之一.它并不关心常见的关系数据库功能,例如视图,外键和其他一些功能.

API文档包含提供给您的公共方法的列表.

您可以做的最好的事情是CREATE在纯SQL中编写-statement,然后使用ActiveRecord::Base.connection.execute.


小智 5

您可以使用 schema_plus gem 来执行此操作!

https://github.com/SchemaPlus/schema_plus

它实际上是一组宝石,但它包含一个与视图有关的宝石。

它提供了create_view一种您可以添加到迁移中的方法,它会将视图转储到您的 schema.rb 文件中,以便在您这样做时重新创建它rake db:schema:load

更多信息:https : //github.com/SchemaPlus/schema_plus_views#user-content-creating-views


Der*_*ior 5

如果您使用 Postgres,则可以使用Scenic来管理 Rails 应用程序中的数据库视图。与 Schema Plus 一样,Scenic 将为您提供create_view. 与 Schema Plus 不同,Scenic 还将提供更多关于管理视图版本的指导以及对物化视图的支持。

如果您使用 MySQL,则有第三方 mysql 适配器可与 Scenic 一起使用,尽管我个人没有使用过它们。