1

可能重复:
数据库特定的迁移代码

所以我在本地运行 MySQL,因为它是我安装的,对我来说很有意义。

但是 Heroku 使用 Postgre,并且它没有相同的字段类型。

即我在本地使用 longblob,它在我的生产环境中变成了 bytea。我在本地使用 tinytext,它变成了文本

如何在我的迁移中指定不同的环境,这样我就不必为了推送到 Heroku 而编辑我的迁移?(我想让它们在我的本地机器上保持语法正确)

还有其他建议吗?

4

2 回答 2

2

我知道想要在本地运行您习惯的东西,因为它更容易。另外,IMO 过去在本地设置 Postgres 一直很痛苦。但是,在与生产服务器相同的数据库上运行开发确实很重要。如果您是 Mac 用户,现在有一个很好的解决方案,由 Heroku postgres 团队提供给您:

http://postgresapp.com/

使用它,你不必担心这个。否则,请按照Mu 发布的答案,这会让你做邪恶的两个数据库的事情:)

于 2012-08-29T02:50:48.020 回答
0

我只是在这里猜测,但你为什么不创建两个不同的迁移文件,一个用于开发,另一个用于生产,并使用如下内容:

rake db:migrate VERSION=00000000000001 RAILS_ENV=production

rake db:migrate VERSION=00000000000002 RAILS_ENV=development
于 2012-08-29T00:03:06.000 回答