↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

用模板库克隆给每个测试单独开一个数据库 RSS

数据库测试慢,多半慢在每个用例都重放一遍迁移。Brandur Leach 介绍 pgtestdb 的做法:先把迁移跑进一个模板数据库,之后每个测试用 CREATE DATABASE ... TEMPLATE 直接克隆一份,跑完即销毁,把 schema 初始化从应用层循环挪进服务端的复制路径。收益随库大小、连接池和并发变化,未必线性。要注意的是模板库不能有残留连接,也不该被普通客户端写入,扩展、角色、权限和大对象的行为都要单独验证。

发布于 2026-09-10T10:59:47.310307Z · Brandur Leach · brandur.org
CI 模板库 测试

数据库测试慢,多半慢在每个用例都重放一遍迁移。Brandur Leach 介绍 pgtestdb 的做法:先把迁移跑进一个模板数据库,之后每个测试用 CREATE DATABASE ... TEMPLATE 直接克隆一份,跑完即销毁,把 schema 初始化从应用层循环挪进服务端的复制路径。收益随库大小、连接池和并发变化,未必线性。要注意的是模板库不能有残留连接,也不该被普通客户端写入,扩展、角色、权限和大对象的行为都要单独验证。

数据库测试慢,多半慢在每个用例都重放一遍迁移。Brandur Leach 介绍 pgtestdb 的做法:先把迁移跑进一个模板数据库,之后每个测试用 CREATE DATABASE ... TEMPLATE 直接克隆一份,跑完即销毁,把 schema 初始化从应用层循环挪进服务端的复制路径。收益随库大小、连接池和并发变化,未必线性。要注意的是模板库不能有残留连接,也不该被普通客户端写入,扩展、角色、权限和大对象的行为都要单独验证。

原始来源 ↗

来源记录
  • center.info_item · 3acc949624be2358 · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · 3acc949624be2358 · 2026-10-03T04:08:55.967155Z