所以我在本地运行MySQL,因为它是我安装的,这对我来说很有意义。
但Heroku使用Postgre,它没有相同的字段类型。
即。我在本地使用longblob,它在我的生产环境中变成了bytea。 我在本地使用tinytext,它只是文本
如何在迁移中指定不同的环境,因此我不必仅为推送到heroku而编辑迁移? (我想保持它们在语法上对我的本地机器正确)
还有其他建议吗?
答案 0 :(得分:2)
我理解想要在本地运行你习惯的东西,因为它更容易。此外,国际海事组织,在当地设立Postgres一直是一个痛苦的过去。但是,在与生产服务器相同的数据库上运行开发非常重要。如果您是Mac用户,现在有一个很好的解决方案,由Heroku postgres团队带给您:
使用它,你不必担心这个。否则,请按照answer posted by Mu,这将让你做恶两个数据库的事情:)
答案 1 :(得分:0)
我只是在这里猜测,但为什么不创建两个不同的迁移文件,一个用于开发,另一个用于生产,并使用类似的东西:
rake db:migrate VERSION=00000000000001 RAILS_ENV=production
rake db:migrate VERSION=00000000000002 RAILS_ENV=development