rails g migrate with postgres prefixes 命令与模式名称

rails g migrate with postgres prefixes commands with schema name

有一段时间没有使用 postgres 了,我 运行正在处理我刚刚开始使用的现有项目中的这个问题。

当我运行rails g migrate时,命令成功完成;但是,它会在 db/structure.sql 上产生大量差异。不同之处在于修改后的文件明确地为每个命令加上 postgres public 模式前缀。

例如,我得到很多这样的差异: -CREATE TABLE customer ( +CREATE TABLE public.customer (

如何抑制这种行为?

这看起来是由至少 Postgresql 9.4.17 release from the 1st March 中的安全补丁引起的(其他版本也可能受到影响),它改变了 search_path 使用 [= 时的行为11=].

您可以尝试降级到以前的补丁版本(例如 9.4.16),这会保留以前的行为,或者尝试使用这个新版本更新您的架构。