ruby-on-rails - 转储文件中视图预定义的目的是什么
问题描述
我正在处理我们为 Active Record 转储程序使用:sql
模式格式的项目(以支持更复杂的逻辑,如触发器)。
我们有很多视图,我可以在database/structure.sql
文件中看到其中一些具有“预定义”架构,NULL
例如:
CREATE VIEW public.my_view AS
SELECT
NULL::integer AS record_id,
NULL::integer AS another_record_id,
NULL::double precision AS some_field;
然后,在数千行之后,添加了以下定义:
CREATE OR REPLACE VIEW public.my_view AS
-- actual query
在我的 SQL 查询中,我看不到对模式“预定义”和定义之间的视图的任何引用。此外,还可以立即创建其他视图(没有该架构“预定义”)。
我正在查看 Active Record 文档,但找不到任何提示。Rails 在后台使用,但我在文档中也pg_dump
没有看到任何相关内容。pg_dump
为什么有些视图需要预先定义模式,而另一些则不需要,即使在database/structure.sql
文件中的预定义和实际定义之间都没有引用它们?是否在使用另一种结构(如物化视图或其他东西)时防止某些竞争条件?
解决方案
推荐阅读
- javascript - Yii2 Pjax 重新加载整个页面
- python - 如果没有解析任何参数,则 argparse 将退出
- sed - sed 将模式移动到行首
- python - turtle.textinput() 在我的一个代码中不起作用,但在另一个代码中起作用
- python - 循环和布尔值的 Python 列表
- c++ - 我想在cpp中实现python列表,但卡在重载下标运算符[]和逗号,
- sql - Hive:尽管使用了不同的,但仍获得重复的记录
- symfony - 如何将 EntityManager 用作服务?
- javascript - 使用 react-native 时如何更新 jwt refreshToken?
- c++ - 无法在 MSVC 19.28 上编译变体访问者访问