运行迁移会将架构公共添加到structure.sql

时间:2018-06-27 09:54:39

标签: ruby-on-rails postgresql

运行$ rails db:migrate时,无论是否添加了任何迁移,structure.sql都会进行更改,删除SET search_path = public, pg_catalog;并将其替换为SELECT pg_catalog.set_config('search_path', '', false);,然后将public.附加到每个{ {1}}语句。

示例:

CREATE

成为:

CREATE FUNCTION round_minutes(timestamp without time zone, integer) RETURNS timestamp without time zone

使用:

  • PostgresSQL v10.4
  • 导轨5.2.0

该问题似乎会影响我们使用9.6.5以上版本的Postgres版本的人

是否可以将Postgres配置为不执行此操作?

1 个答案:

答案 0 :(得分:2)

有一个vulnerability in Postgresql已于2018年3月修复。

如果您使用的是Postgresql版本10.3、9.6.8、9.5.12、9.4.17、9.3.22或更高版本,则它将在表引用中指定pulbic模式并设置pg_catalog search_path。

也许您团队中的某人正在使用旧版本的Postgresql,导致structure.sql恢复。