Haven在一段时间内与postgres合作,我在刚刚开始合作的现有项目中遇到了这个问题。
当我运行rails g migrate
时,命令成功完成;但是,它会在db/structure.sql
上产生一大堆差异。不同之处在于修订后的文件使用postgres公共模式明确地为每个命令添加前缀。
例如,我得到了许多像这样的差异:
-CREATE TABLE customer (
+CREATE TABLE public.customer (
如何抑制此行为?
答案 0 :(得分:5)
这看起来是由至少Postgresql 9.4.17 release from the 1st March中的安全补丁引起的(其他版本也可能受到影响),这在使用{{1}时改变了search_path
的行为}。
您可以尝试降级到之前的修补程序版本(例如$ pg_dump
),这会保留以前的行为,或者使用此新版本进行插入并更新您的架构。