2

我即将开发一个应用程序,我将使用 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 服务器时会遇到一个大问题吗?

我有一个巨大的项目摆在我面前,我想听听以前处理过这个问题的人的意见,这样我就可以尽可能地提前计划。任何和所有输入将不胜感激。

4

2 回答 2

2

如果这是一个新应用程序,您应该使用开发计划测试版而不是 8.3 共享版。在你完成一个大型项目之前,这可能已经结束了测试。当旧的共享计划显然即将退出时,您几乎没有理由处理 8.3 的怪癖,而 PostgreSQL 8.3 本身将在 2 月弃用。我现在不建议任何人使用 9.1 以外的任何东西构建新的 PostgreSQL 应用程序;与早期版本的软件相比,它修复了太多限制。

于 2012-07-31T00:32:39.953 回答
0

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

但是,通常升级(从较小的版本号到较大的版本号)是没有问题的。你应该检查一下。

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

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

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

于 2012-07-29T18:10:26.023 回答