Postgres在后端的测试策略
我想测试一个Postgres DB再次执行查询的后端。 据我了解嘲笑postgres是不可能的(而不是MongoDB),并且应该查询一个真正的数据库。
所以我的第一个问题是,测试postgres查询的标准策略是什么?
现在,我试图重新创建一个没有数据的数据库,这样我就可以为每个测试插入信息并完全控制输出。 但是,目前尚不清楚如何做到这一点。 到目前为止,我已经想出了类似的东西:
pg_dump mydb --schema-only | pg_restore testdb
然而它真的很慢。 我想其中一个原因是,如果测试客户端与数据库不在同一个网络中,那么pg_dump必须通过网络获取所有信息,然后才能将其发送回同一台计算机。
我想我正在寻找的东西会类似于
Create new database testdb with template mydb
它只复制架构信息,并且不强制关闭所有连接。
我想,你对模板数据库的想法是最好的。
为什么不创建一个与mydb
相同的模板数据库,只有没有数据? 如果您的问题是mydb
经常发生模式更改,请使用将所有模式更改应用于mydb
和模板数据库的部署技术。