PostgreSQL本地和Heroku PostgreSQL版本

时间:2012-07-29 17:12:44

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

我即将开发一个应用程序,我将使用Heroku部署它。我的上一个应用程序在开发过程中遇到了sqlite3的问题。在生产中测试环境和postgres,我只想在我的所有环境中运行postgres数据库。因此,我去安装postgres。

但是,我遇到了这个Heroku页面(https://devcenter.heroku.com/articles/local-postgresql),该页面指出它使用PostgreSQL 8.3数据库用于共享服务器,PostgreSQL 9.1用于新配置的数据库。当然我想至少在最初使用共享服务器。所以,这导致我遇到一些问题。

如果我决定安装postgres 8.3并使用它来开发&部署(以便我的数据库与共享服务器匹配),如果我需要增加数据库大小并最终运行postgres 9.1,我是否会遇到一个大问题?

如果我安装postgres 9.1并使用它来开发&部署,当我部署到postgres 8.3服务器时,我是否会遇到一个大问题?

我之前有一个庞大的项目,我希望能听到之前处理过这个问题的人,以便尽可能提前做好计划。任何和所有输入将不胜感激。

2 个答案:

答案 0 :(得分:2)

如果这是一个新应用,您应该使用dev plan beta而不是8.3共享应用。在完成大型项目之前,这可能已经完成测试。当旧的共享计划显然正在逐渐消失时,你几乎没有理由处理8.3的怪癖,2月份PostgreSQL 8.3本身就是due for deprecation。我不建议任何人建立一个新的PostgreSQL应用程序,除了9.1以外的任何东西;与早期版本的软件相比,它修复了太多限制。

答案 1 :(得分:0)

是的,如果您的软件依赖于这两个数据库版本中不同的某些功能,则可能会出现问题。例如,当您使用9.1中存在的功能时,8.3中不存在该功能。

然而,通常升级(从较小的版本号到较大的版本号)都没有问题。你应该检查它。

好的测试套件会有所帮助,只需在一个数据库上测试应用程序,然后在另一个数据库上测试。

规则1:您用于测试的数据库必须与您在生产中使用的数据库(引擎,版本,操作系统)完全相同 - 否则您将无法说您测试了应用程序。

规则2:没有像“postgre”这样的东西。数据库名称为PostgreSQL或Postgres。