Rails:指定特定于生产环境的迁移

时间:2012-08-28 23:54:59

标签: mysql ruby-on-rails ruby-on-rails-3 postgresql heroku

  

可能重复:
  Database Specific Migration Code

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

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

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

如何在迁移中指定不同的环境,因此我不必仅为推送到heroku而编辑迁移? (我想保持它们在语法上对我的本地机器正确)

还有其他建议吗?

2 个答案:

答案 0 :(得分:2)

我理解想要在本地运行你习惯的东西,因为它更容易。此外,国际海事组织,在当地设立Postgres一直是一个痛苦的过去。但是,在与生产服务器相同的数据库上运行开发非常重要。如果您是Mac用户,现在有一个很好的解决方案,由Heroku postgres团队带给您:

http://postgresapp.com/

使用它,你不必担心这个。否则,请按照answer posted by Mu,这将让你做恶两个数据库的事情:)

答案 1 :(得分:0)

我只是在这里猜测,但为什么不创建两个不同的迁移文件,一个用于开发,另一个用于生产,并使用类似的东西:

rake db:migrate VERSION=00000000000001 RAILS_ENV=production

rake db:migrate VERSION=00000000000002 RAILS_ENV=development