【发布时间】:2023-04-03 15:50:01
【问题描述】:
我有一个运行 SQL 脚本以创建新 Postgres 架构的迁移。默认情况下,在 Postgres 中创建新数据库时,它会创建一个名为“public”的模式,这是我们使用的主要模式。创建新数据库模式的迁移似乎工作正常,但是在迁移运行后出现问题,当 rails 尝试更新它所依赖的“schema_info”表时,它说它不存在,就好像它是在新的数据库架构中查找它,而不是在表实际所在的默认“公共”架构中查找。
有人知道我如何告诉 rails 查看此表的“公共”架构吗?
正在执行的 SQL 示例:~
CREATE SCHEMA new_schema;
COMMENT ON SCHEMA new_schema IS 'this is the new Postgres database schema to sit along side the "public" schema';
-- various tables, triggers and functions created in new_schema
抛出错误:~
RuntimeError: ERROR C42P01 Mrelation "schema_info" does not exist
L221 RRangeVarGetRelid: UPDATE schema_info SET version = ??
感谢您的帮助
克里斯·奈特
【问题讨论】:
-
您可能需要编辑您的问题以澄清您何时谈论 rails db 架构以及何时谈论 postgres 架构。
-
另外,举例和命名也有帮助。对于与您的应用无关的我们来说,您的问题的抽象描述更难掌握。
-
你的database.yml是怎么配置的?
标签: ruby-on-rails ruby postgresql schema migration