【发布时间】:2012-11-08 14:57:34
【问题描述】:
看到How to customize Gemfile per developer?,但它并没有真正做到我想要的,而且它很旧。
用例:我想使用 Postgres,而其他开发人员正在使用 SQLite。
一种解决方案是修改我的 Gemfile 而不提交它,但是如果有人对其进行任何更改,它将不同步。无论如何,它会在一段时间后意外提交。
有没有一种干净的方法可以在我的环境中删除 SQLite gem 并添加 Postgres gem,而不影响其他开发人员的环境和 Gemfile 中的其他 gem?
FWIW,这些更改仅影响开发和测试环境。不是分期或生产。
或者,也许根本不需要更改 Gemfile。是否可以同时安装 gem 并打开 db 配置文件?如果是这样,如何设置每个开发人员的数据库配置?
编辑:不需要更改 Gemfile。只需安装 pg gem 并更改 database.yml 配置文件。
【问题讨论】:
-
我想知道你为什么要这样做。我不知道 SQLite 和 Postgres 之间是否存在差异(特别是在生成的 SQL 中),但这是有风险的。开发者都应该尽可能地使用相同的环境来消除不一致。
-
SQLite 和 postgres 之间存在差异,即使生成的 SQL 相同,某些东西的行为也会有所不同,只是因为 SQLite 的目标与 Postgres 不同。我认为其中一个区别(不完全确定)是 SQlite 只有一种内部类型:字符串,并且所有内容都被转换为它。
-
实际上,这是我想在本地运行 Postgres 的原因之一(这就是我们在生产中使用的)。但我不规定其他开发人员做什么。
-
好吧,我不得不说,你应该把所有东西都改成 Postgres,然后让其他开发人员想知道他们如何使用 SQLite。然后告诉他们应该只使用 Postgres。他们不应该这样做没有任何好的、实际的理由。虽然你可能不想对他们发号施令(我明白了),但最终目标是制作好的软件,如果每个人都在不应该的时候使用不同的技术进行开发,这是不可能的。
标签: ruby-on-rails ruby gem bundler gemfile