我想测试一个对 Postgres 数据库执行查询的后端。据我所知,模拟 postgres 是不可能的(与 MongoDB 相反),应该查询一个真实的数据库。
所以我的第一个问题是,测试 postgres 查询的标准策略是什么?
现在,我正在尝试重新创建一个没有数据的数据库,以便我可以为每个测试插入信息并完全控制输出。但是,尚不清楚如何做到这一点。到目前为止,我已经想出了类似的东西:
pg_dump mydb --schema-only | pg_restore testdb
但是它真的很慢。我想原因之一是,如果测试客户端与数据库不在同一个网络中,那么 pg_dump 将不得不通过网络获取所有信息,然后将其发送回同一台机器。
我想我正在寻找的东西类似于
Create new database testdb with template mydb
它只复制了模式信息并且没有强制关闭所有连接。
最佳答案
我认为您关于模板数据库的想法是最好的。
为什么不创建一个和mydb
一样的模板数据库,只是没有数据?如果您的问题是 mydb
频繁更改架构,请使用一种部署技术,将所有架构更改应用于 mydb
和模板数据库。
关于postgresql - 后端postgres的测试策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39568389/