我需要在我的数据库中创建一个视图。我知道我可以使用ActiveRecord使用create_table方法创建表。我不知道是否有任何相似的create_table,但它创建了一个视图。在ActiveRecord(Rails)中有没有像create_view的东西?
6
A
回答
6
不是。这是ActiveRecord“自以为是”的事情之一。它并不真正关心常见的关系数据库功能,如视图,外键和其他一些功能。
API documentation包含可供您使用的公共方法的列表。
您可以做的最好的事情是使用普通SQL编写CREATE
-statement,并使用ActiveRecord::Base.connection.execute
。
2
您可以使用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
3
如果您使用Postgres,则可以使用Scenic来管理您的Rails应用程序中的数据库视图。像Schema Plus一样,Scenic会给你create_view
。与Schema Plus不同的是,Scenic还会提供更多关于管理视图版本和物化视图支持的指导。
如果您使用的是MySQL,那么第三方mysql适配器可用于Scenic,尽管我没有亲自使用它们。
相关问题
- 1. 有没有像''的东西?
- 2. Grails在Rails中有没有像acts_as_tree这样的东西?
- 3. 有没有像ActiveRecord :: Migration for .NET的东西?
- 4. C有没有像PHP ob_start的东西?
- 5. Haskell有没有像Incanter的东西?
- 6. 有没有像Codecademy for Java的东西
- 7. 有没有像Acegi for PHP的东西?
- 8. 有没有像WMI for Linux的东西?
- 9. SQLite有没有像insert_id的东西?
- 10. 有没有像DatastoreOutputWriter的东西?
- 11. 有没有像.gitonlytrackfiles的东西?
- 12. 有没有像RightMark for Linux的东西?
- 13. SASS里有没有像“+ =”的东西?
- 14. C有没有像IDLE(python)的东西?
- 15. 有没有像GraphEdit for MediaFoundation的东西?
- 16. 有没有像pmax索引的东西?
- 17. 有没有像网络TextMate的东西?
- 18. 有没有像NSBottomBar的东西?
- 19. Mercurial有没有像svnserve的东西?
- 20. Rails的escape_javascript没有渲染的东西
- 21. 在Sybase中有没有像SET FOREIGN_KEY_CHECKS = 0的东西?
- 22. 在MATLAB中有没有像'whereis'的东西?
- 23. 在android开发中有没有像TimeSpan的东西?
- 24. 在Python中切片清单:有没有像-0的东西?
- 25. 在Rails 3.1上有没有类似stylesheet_url的东西?
- 26. 有没有像onrotate()或类似的功能在Android的东西?
- 27. 有没有像redis中的get_next那样的东西?
- 28. 有没有像C#中的Bundle一样的东西?
- 29. 有没有像.NET中的东西的Java描述符?
- 30. Ruby on Rails ActiveRecord查找后有什么东西可以做?
看看这篇文章:https://ideamotive.co/blog/materialized-views-ruby-rails-scenic/ – d3m0n 2018-01-18 12:48:50