11

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

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

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

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

4

2 回答 2

2

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

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

于 2014-01-15T13:06:56.663 回答
0

我会一直使用迁移。schema.rb只有红宝石的缺点。如果 - 出于某种原因 - 您在迁移中使用纯 SQL,可能会使用BIGSERIAL而不是SERIAL这样,您将遇到schema.rb. 切换到基于 SQL 的模式转储只能解决部分问题,而将可能需要的数据更正或数据种子排除在外。

于 2015-06-02T11:39:53.360 回答