Redrock Postgres 文档
主页 切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

开发和测试

每个正在运行的 PostgreSQL 服务器实例都管理着一个或多个数据库。在组织 SQL 对象(“数据库对象”)的层次中,数据库位于最顶层。在一个 Redrock Postgres 的实例中,角色和表空间都是数据库级别的对象,每个数据库都有自己独立的数据体系结构(包括角色、用户、模式和对象权限相关信息),各个数据库的数据是完全隔离的。

我们在开发应用软件时经常会使用版本管理系统,来管理用于开发各种特性的代码分支。类似地,在 Redrock Postgres 中,我们也可以使用它的多数据库服务能力,管理用于开发和测试各种特性的数据库。

主分支数据库

应用程序代码库应该有一个、且仅有一个主分支的数据库,它包含了应用程序所需的基础数据。所有提供给用户使用的正式版本的应用软件产品,都基于这个主分支数据库进行发布。这里我们把主分支数据库叫做master

我们可以把主分支数据库转储到一个 SQL 脚本文件,发布应用程序所需的基础数据:

$ pg_dump master > base.sql

如果我们需要重置应用开发和测试所需的基础数据,我们可以删除、重新创建新的主分支数据库:

DROP DATABASE master;
CREATE DATABASE master;

把带有基础数据的 SQL 脚本文件导入到主分支数据库,重置应用开发和测试所需的基础数据:

$ psql -d master -f base.sql

开发分支数据库

主分支数据库只用来发布重大版本,日常开发应该在另一条分支上完成。我们可以把开发用的分支,叫做develop

这个分支可以用来生成应用软件的最新隔夜版本(nightly)。如果想正式对外发布,就在主分支数据库上,对开发分支数据进行合并,构建新的主分支基础数据。

创建开发分支数据库的 SQL 命令:

CREATE DATABASE develop TEMPLATE master;

特性分支数据库

特性分支数据库,是为了开发某种特定功能,从开发分支上面分出来的。开发完成后,再将差异数据合并到开发分支。

特性分支数据库的名字,可以采用前缀feature_加上特性名称的形式命名。

创建一个特性分支数据库的 SQL 命令:

CREATE DATABASE feature_x TEMPLATE develop;

修补分支数据库

还有一种是修补分支。软件正式发布以后,难免会出现问题。这时就需要创建一个分支数据库,进行问题修补。

修补分支是从主分支数据库上面分出来的。修补结束以后,再合并进主分支和开发分支。修补分支数据库的名字,可以采用前缀bugfix_加上问题名称的形式命名。

创建一个修补分支数据库的 SQL 命令:

CREATE DATABASE bugfix_x TEMPLATE master;

测试数据库

测试数据库,是测试人员对发布的应用软件,进行测试所使用的数据库,数据环境需要和生产数据库尽可能保持一致。

测试数据库的名字,可以采用前缀test_加上测试目的名称的形式命名。

创建一个测试数据库的 SQL 命令:

CREATE DATABASE test_x TEMPLATE master;