開發(fā)人員經(jīng)常會犯了一個錯誤,這個錯誤導致從登臺數(shù)據(jù)庫中刪除每個表。從好的方面來說,這不是生產(chǎn)數(shù)據(jù)。好在沒有客戶數(shù)據(jù)受到損害。暫存數(shù)據(jù)庫由Amazon RDS快照在20分鐘內恢復,并且僅在內部使用。無論如何,請注意生產(chǎn)狀態(tài)命令。在開發(fā)階段緩存配置和路由通常會導致意外行為。如果您不清除路由緩存,可能會浪費一些時間來了解為什么未發(fā)生“ 404頁面未找到”的情況。配置緩存是一個有趣的發(fā)現(xiàn)。
功能1:config:cache
如果您php artisan config:cache在Laravel應用程序中運行,它將生成一個bootstrap/cache/config.php文件,其中包含config/*.php文件夾中的所有配置。目的是通過將設置緩存在準備就緒狀態(tài)來加快Laravel的引導過程。
功能2:RefreshDatabase
Laravel 5.5附帶了一個稱為的新特性RefreshDatabase和一個名為的出色遷移命令migrate:fresh。該特征只會遷移一次,然后使用事務來加快測試套件的速度,但是它將在啟動之前刪除所有現(xiàn)有表。當然,它是用于sqlite :memory:或本地數(shù)據(jù)庫。
沖突
您的本地環(huán)境設置為使用與每個開發(fā)人員共享的登臺數(shù)據(jù)庫。這樣做的原因是因為您要測試功能的性能,并且登臺數(shù)據(jù)庫具有一些相當好的數(shù)據(jù)集來對此進行測試。但是,由于要測試性能,你顯然要緩存的路徑和配置。
您對結果感到滿意。現(xiàn)在該繼續(xù)下一個功能了。作為TDD愛好者,您編寫一個新測試并運行它以查看它在哪里中斷。它失敗。太好了,現(xiàn)在就實施它。屋子里有人大喊—? 伙計們,登臺數(shù)據(jù)庫發(fā)生了什么?
您的測試套件未:memory:從中加載您的 價值phpunit.xml。不需要,因為bootstrap/cache/config.php具有所有必要的設置。遺憾的是,設置不正確。
您進入Amazon控制臺并在過去5分鐘內恢復快照。在15到20分鐘內,重新運行環(huán)境不會造成永久損壞。
善后
在學習了如何炸毀意外數(shù)據(jù)庫之后,讓我們學習如何保護它。
1-101:刪除權限
別偷懶 為您的項目設置一個沒有DROP臨時環(huán)境權限的新數(shù)據(jù)庫用戶。
2-測試設置白名單
CreatesApplication特點是檢查特定設置是否預期或不完美的地方。它在測試套件之間共享,并在設置數(shù)據(jù)庫之前執(zhí)行。
這將確保如果您搞砸了,則意外的環(huán)境將不會受到影響。
3- [獎金]使調試更加容易
您的環(huán)境受到保護。一切就緒。這不會再發(fā)生。但是,下次您緩存設置并忘記設置時,測試將告訴您設置錯誤。您可能會phpunit.xml困惑地看待該文件,甚至可能怎么辦。為了使將來的事情變得簡單明了,多了3行代碼可以節(jié)省一些調試時間。
結論
第二天,我在站立會議上報告說,我已經(jīng)測試了數(shù)據(jù)庫備份系統(tǒng)。他們的工作異常出色。從好的方面來說,我還報告說我不會再意外地對其進行測試。
上述就是關于如何銷毀登臺數(shù)據(jù)庫的全部內容,想了解更多關于數(shù)據(jù)庫的信息,請繼續(xù)關注中培偉業(yè)。