如何借助dbForge Studio for MySQL自動測試數據恢復過程
dbForge Studio for MySQL是一個在Windows平臺被廣泛使用的MySQL客戶端,它能夠使MySQL開發(fā)人員和管理人員在一個方便的環(huán)境中與他人一起完成創(chuàng)建和執(zhí)行查詢,開發(fā)和調試MySQL程序,自動化管理MySQL數據庫對象等工作。
點擊下載dbForge Studio for MySQL最新試用版
當基于復雜的數據庫結構開發(fā)軟件應用程序時,通常有必要在相同的輸入數據上運行各種業(yè)務邏輯測試方案。這就是重復恢復測試數據的問題所在。本文提供了一種最簡單方法工具僅使用dbForge Studio for MySQL自動化該過程 。
測試數據恢復是一個耗時且費力的過程,通常是手動完成的。因此,其自動化對于確??焖?,可靠和具有成本效益的交付至關重要。但是,在開始詳細介紹如何借助dbForge Studio for MySQL自動化測試數據恢復過程之前,讓我們首先了解一些術語。
慧都現推出“軟件國產化服務季”dbForge Studio for MySQL直降2000元,在線訂購正版授權最低只要1026元! 點擊查看詳情>>
什么是DevOps?
DevOps是一個相當新且迅速傳播的概念,它描述了一組旨在使軟件開發(fā)和交付流程自動化的實踐,以便開發(fā)和IT團隊可以縮短整個服務生命周期并提供持續(xù)交付的高質量軟件。
為什么選擇DevOps用于數據庫?
數據庫更改是執(zhí)行應用程序部署時延遲的主要原因。因此,旨在提高數據庫變更交付速度的數據庫開發(fā)自動化導致迭代次數縮短,并且無疑對軟件應用程序的持續(xù)交付產生積極影響。
如何使用dbForge Studio for MySQL自動執(zhí)行測試數據恢復
背景:
假設我們的數據庫源代碼位于遠程存儲庫上,并且它的測試數據必須從其他來源(例如腳本文件夾,另一個數據庫或文件)生成或獲取。
先決條件:
- 已安裝的dbForge Studio for MySQL
- 先前使用dbForge Studio for MySQL配置的必需模板文件(.scomp,.dcomp,.dit和/或.dgen)。
步驟1.克隆存儲庫
假設在遠程Git存儲庫中有一個腳本文件夾,我們需要將其用作創(chuàng)建數據庫的數據源。首先,我們需要將此遠程存儲庫克隆到本地文件夾。在這個工作示例中,我們將存儲庫克隆到D:\ Temp \ DevOps_MySQL \。以下是此操作的CMD命令:
git clone https://github.com/repository-name/sakila.git D:\Temp\DevOps_MySQL
其中:
repository-name
要克隆的存儲庫的名稱
sakila
包含要使用的測試數據的數據庫的名稱
注意:
在運行上述命令之前,請確保您的計算機上已安裝Git for Windows客戶端。
步驟2.在服務器上創(chuàng)建或重新創(chuàng)建數據庫
在服務器上部署數據庫之前,需要創(chuàng)建或重新創(chuàng)建數據庫(刪除舊數據庫,然后創(chuàng)建新數據庫)。這可以通過數據庫創(chuàng)建腳本,CMD和dbForge Studio for MySQL輕松完成。我們不會在本文中強調這一點,因為這些操作非常基礎。
要在服務器上創(chuàng)建sakila數據庫,我們將使用以下命令行腳本:
dbforgemysql.com /execute /connection:"User Id=%user-name%;password=%your-password%;Host=%your-host%" /inputfile "D:\Temp\DevOps_MySQL\Create_sakila2.sql"
請注意,您需要輸入自己的憑據才能使此腳本正常工作。
對于喜歡PowerShell操作環(huán)境的用戶,我們還提供PS腳本:
.\dbforgemysql.com /execute /connection:"User Id=%user-name%;password=%your-password%;Host=%your-host%" /inputfile "D:\Temp\DevOps_MySQL\Create_Sakila2.sql" if ($? -eq $true) { Write-host "Database sakila2 created" -ForegroundColor Cyan } else { Write-host "Error" -ForegroundColor Yellow }
同樣,不要忘記將自己的憑據添加到腳本中。
步驟3.在本地和遠程數據庫之間同步架構
下面是CMD和PS腳本,用于將空的本地sakila2數據庫的模式與遠程sakila數據庫同步。同步的結果是,將創(chuàng)建在配置模板時選擇的所有表,視圖,過程,函數和觸發(fā)器。
CMD
dbforgemysql.com /schemacompare /compfile:"D:\Temp\DevOps_MySQL\sakila vs sakila2.scomp" /sync @echo %ERRORLEVEL%
PS
.\dbforgemysql.com /schemacompare /compfile:"D:\Temp\DevOps_MySQL\sakila vs sakila2.scomp" /sync if ($? -eq $true) { Write-host "Objects for sakila2 created" -ForegroundColor Cyan } else { Write-host "Error" -ForegroundColor Yellow }
注意:
提供的腳本表示您先前已配置并保存了模式比較模板文件(.scomp)以同步指定的數據庫。請不要忘記使用dbForge Studio for MySQL的“模式比較”功能來準備有問題的文件。
步驟4.用數據填充數據庫
在上一步中,我們恢復了數據庫結構。現在我們需要的是用測試數據填充數據庫。dbForge Studio for MySQL可以擁有三種不同的工具,可用于用數據填充數據庫。由于這三個都可以從命令行調用,因此可以在數據庫自動化過程中使用,因此我們將分別考慮它們。
使用數據比較功能填充數據庫
您可以使用dbForge Studio for MySQL內置的高級“Date Comparison”功能輕松地還原位于腳本文件夾或另一個數據庫中的參考數據。使用以下腳本將數據插入country表:
CMD
dbforgemysql.com /datacompare /compfile:"D:\Temp\DevOps_MySQL\country.dcomp" /sync @echo %ERRORLEVEL%
PS
.\dbforgemysql.com /datacompare /compfile:"D:\Temp\DevOps_MySQL\country.dcomp" /sync if ($? -eq $true) { Write-host "Data inserted in sakila2" -ForegroundColor Cyan } else { Write-host "Error" -ForegroundColor Yellow }
注意:
上面提供的腳本表示您先前已經配置并保存了數據比較模板文件(.dcomp)以同步指定數據庫中的數據。請不要忘記在運行腳本之前準備有問題的文件。
使用數據導入/導出功能填充數據庫
如果參考數據不是存儲在數據庫本身中,而是存儲在單獨的文件中,則“數據導入”是用數據填充數據庫的最佳選擇。dbForge Studio for MySQL提供了一種簡單有效的方法,即使用尖端的Data Import/Export functionality將這些數據直接導入所需的表中。
使用以下腳本將數據插入地址表:
CMD
dbforgemysql.com /dataimport /templatefile:"D:\Temp\DevOps_MySQL\address.dit" @echo %ERRORLEVEL%
PS
.\dbforgemysql.com /dataimport /templatefile:"D:\Temp\DevOps_MySQL\address.dit" if ($? -eq $true) { Write-host "Data inserted in sakila2" -ForegroundColor Cyan } else { Write-host "Error" -ForegroundColor Yellow }
注意:
上面提供的腳本表示您先前已經配置并保存了數據導入模板文件(.dit),以便將數據導入指定的表中。請不要忘記在運行腳本之前準備有問題的文件。
使用數據生成器功能填充數據庫
dbForge Studio for MySQL具有生成數據的強大功能。它最適合需要在數據庫中填充大量實際數據,但又不能或不希望將大量數據存儲在磁盤上的情況。同樣,在這種情況下,預先配置了數據生成器模板文件(.dgen),您可以使用以下腳本將數據插入actor表:
CMD
dbforgemysql.com /generatedata /projectfile:"D:\Temp\DevOps_MySQL\actor.dgen" @echo %ERRORLEVEL%
PS
.\dbforgemysql.com /generatedata /projectfile:"D:\Temp\DevOps_MySQL\actor.dgen" if ($? -eq $true) { Write-host "Data inserted in sakila2" -ForegroundColor Cyan } else { Write-host "Error" -ForegroundColor Yellow }
注意:
在運行上面提供的腳本之前,配置和保存數據生成器模板文件(.dgen)非常重要。
本文中提供的所有腳本均返回退出狀態(tài)。結果,如果您編譯這三個腳本-用于還原數據庫結構,同步數據庫模式和填充數據庫,則將獲得一個MySQL數據庫自動化腳本,用于還原測試數據,從而可以監(jiān)視和控制執(zhí)行階段。
結論
dbForge Studio for MySQL是功能豐富的IDE,使您可以輕松地將DevOps方法擴展到MySQL和MariaDB數據庫的開發(fā)和部署。下載dbForge Studio For MySQL,讓您的應用開發(fā)沖出國際。
慧都現推出“軟件國產化服務季”dbForge Studio for MySQL直降2000,在線訂購正版授權最低只要1026元! 點擊查看詳情>>