rails g使用带有模式名称的postgres前缀命令进行迁移

时间:2018-03-09 03:22:58

标签: ruby-on-rails-4 postgresql-9.5

Haven在一段时间内与postgres合作,我在刚刚开始合作的现有项目中遇到了这个问题。

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

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

如何抑制此行为?

1 个答案:

答案 0 :(得分:5)

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

您可以尝试降级到之前的修补程序版本(例如$ pg_dump),这会保留以前的行为,或者使用此新版本进行插入并更新您的架构。