我应该忽略schema.rb,因为扩展在开发/生产操作系统上有所不同吗?

时间:2013-09-17 23:57:55

标签: ruby-on-rails ruby rake rails-postgresql pg

我的数据库使用PostgreSQL。我在Mac上开发,需要这一行:

  # db/schema.rb on Mac environment
  enable_extension "plpgsql"

但是,Linux上不需要扩展名。

在这种情况下,我们应该忽略schema.rb并通过db:migrate为开发环境和生产环境生成吗?

2 个答案:

答案 0 :(得分:2)

据我了解,问题是自动生成的schema.rb在生产和开发方面会有所不同,因此会导致git中的文件发生变化,因为这个额外的行。

postgres适配器在mac上生成的行吗?如果它是手动添加的,我会尝试将其放在其他地方,也许在初始化程序中(您可以通过此处的某些内容根据平台切换其使用情况:Detecting Operating Systems in Ruby)。

答案 1 :(得分:0)

我会一直使用迁移。 schema.rb的缺点是只有红宝石。如果 - 由于某种原因 - 您在迁移中使用了纯SQL,可能使用BIGSERIAL而不是SERIAL左右,那么schema.rb会出现问题。切换到基于SQL的模式转储只能解决问题的一部分,从而可能需要对数据进行必要的数据更正或数据播种。