2016-08-09 46 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