背景:我运行依赖于PostgreSQL数据库的端到端测试。我需要这些测试要快速,可并行化,确定性和孤立。
因此,我想尽快地重新创建数据库-包括模式,数据和索引。我创建一个基本图像:
VACCUM FULL
/var/lib/postgresql/data
中的文件然后对于每个测试,我迅速解压缩该图像并运行PostgreSQL实例。
问题:,所有方法都可以,但是磁盘文件似乎超出了必要。一个相当小的数据库仍然是64MB。
如何为文件级还原实现较小的文件集?缩小现有文件的大小?从备份中排除一些文件?
答案 0 :(得分:0)
感谢您阐明用例:
我运行依赖于PostgreSQL数据库的端到端测试。我需要这些测试要快速,可并行化,确定性和孤立。
因此,我想尽快地重新创建数据库-包括模式,数据和索引。
最初的想法-通过路径定位一组特定的文件并还原这些文件-很脆弱,因为路径可以并且确实随着不同的PostgreSQL版本而改变。
正如评论中所讨论的,更确定性的方法是使用更通用的容器技术。 suitable for the use case是一种很常见的Docker。也有various other container options。Docker的文档中有一个how to set up a container running PostgreSQL的示例。