2016-08-09 44 views
0

我正在为API创建测试。我想设置数据库并对每个测试进行清理。问题是我的数据库非常复杂和庞大,所以我想知道是否有办法做一个完整的设置和清理整个测试数据库,这不是太重。感谢您的建议。如果你需要更多细节,请告诉我。如果这有帮助,我使用phpunit进行测试,并使用symphony作为我的框架。在测试Postgress和PHP后设置和清理数据库

+0

如何使数据库复制和每次测试后,你可以覆盖刚刚使用原始(其他)的数据库。你可以快速克隆它,例如从phpMyAdmin。 – MilanG

+0

感谢@MilanG的快速响应。我也想过。事情是这个测试会被其他人使用,所以我需要在测试之前设置它。我正在寻找一种方法来使用php上传整个sql文件,并且不会因为数据库有许多表和大量数据而在系统上过于沉重。那拉斯部分是相对的,但让我说我的系统很大。 – Eli

+1

然后你可以有mysql数据库转储,然后从php调用console mysql命令将该转储导入到db。所以任何时候你想“重置”你的表只需执行“exec”或类似的命令来调用mysql来重新导入数据库。 – MilanG

回答

1

这对模板数据库非常简单。
您可以创建并填充所需的测试数据库,我们称之为test_template
然后确保没有人可以连接:

ALTER DATABASE test_template ALLOW_CONNECTIONS false IS_TEMPLATE true; 

然后用

CREATE DATABASE test123 TEMPLATE test_template; 

创建测试数据库清理,你只是删除数据库。您必须确保没有任何人连接,使用功能pg_terminate_backend杀死任何剩余的连接。

+0

谢谢Laurenz,这非常有帮助。我使用了这个,之后使用了pg_restore来维护测试数据库的清洁。 – Eli