如何借助dbForge Studio for MySQL自動(dòng)測(cè)試數(shù)據(jù)恢復(fù)過(guò)程
dbForge Studio for MySQL是一個(gè)在Windows平臺(tái)被廣泛使用的MySQL客戶(hù)端,它能夠使MySQL開(kāi)發(fā)人員和管理人員在一個(gè)方便的環(huán)境中與他人一起完成創(chuàng)建和執(zhí)行查詢(xún),開(kāi)發(fā)和調(diào)試MySQL程序,自動(dòng)化管理MySQL數(shù)據(jù)庫(kù)對(duì)象等工作。
點(diǎn)擊下載dbForge Studio for MySQL最新試用版
當(dāng)基于復(fù)雜的數(shù)據(jù)庫(kù)結(jié)構(gòu)開(kāi)發(fā)軟件應(yīng)用程序時(shí),通常有必要在相同的輸入數(shù)據(jù)上運(yùn)行各種業(yè)務(wù)邏輯測(cè)試方案。這就是重復(fù)恢復(fù)測(cè)試數(shù)據(jù)的問(wèn)題所在。本文提供了一種最簡(jiǎn)單方法工具僅使用dbForge Studio for MySQL自動(dòng)化該過(guò)程 。
測(cè)試數(shù)據(jù)恢復(fù)是一個(gè)耗時(shí)且費(fèi)力的過(guò)程,通常是手動(dòng)完成的。因此,其自動(dòng)化對(duì)于確保快速,可靠和具有成本效益的交付至關(guān)重要。但是,在開(kāi)始詳細(xì)介紹如何借助dbForge Studio for MySQL自動(dòng)化測(cè)試數(shù)據(jù)恢復(fù)過(guò)程之前,讓我們首先了解一些術(shù)語(yǔ)。
慧都現(xiàn)推出“軟件國(guó)產(chǎn)化服務(wù)季”dbForge Studio for MySQL直降2000元,在線訂購(gòu)正版授權(quán)最低只要1026元! 點(diǎn)擊查看詳情>>
什么是DevOps?
DevOps是一個(gè)相當(dāng)新且迅速傳播的概念,它描述了一組旨在使軟件開(kāi)發(fā)和交付流程自動(dòng)化的實(shí)踐,以便開(kāi)發(fā)和IT團(tuán)隊(duì)可以縮短整個(gè)服務(wù)生命周期并提供持續(xù)交付的高質(zhì)量軟件。
為什么選擇DevOps用于數(shù)據(jù)庫(kù)?
數(shù)據(jù)庫(kù)更改是執(zhí)行應(yīng)用程序部署時(shí)延遲的主要原因。因此,旨在提高數(shù)據(jù)庫(kù)變更交付速度的數(shù)據(jù)庫(kù)開(kāi)發(fā)自動(dòng)化導(dǎo)致迭代次數(shù)縮短,并且無(wú)疑對(duì)軟件應(yīng)用程序的持續(xù)交付產(chǎn)生積極影響。
如何使用dbForge Studio for MySQL自動(dòng)執(zhí)行測(cè)試數(shù)據(jù)恢復(fù)
背景:
假設(shè)我們的數(shù)據(jù)庫(kù)源代碼位于遠(yuǎn)程存儲(chǔ)庫(kù)上,并且它的測(cè)試數(shù)據(jù)必須從其他來(lái)源(例如腳本文件夾,另一個(gè)數(shù)據(jù)庫(kù)或文件)生成或獲取。
先決條件:
- 已安裝的dbForge Studio for MySQL
- 先前使用dbForge Studio for MySQL配置的必需模板文件(.scomp,.dcomp,.dit和/或.dgen)。
步驟1.克隆存儲(chǔ)庫(kù)
假設(shè)在遠(yuǎn)程Git存儲(chǔ)庫(kù)中有一個(gè)腳本文件夾,我們需要將其用作創(chuàng)建數(shù)據(jù)庫(kù)的數(shù)據(jù)源。首先,我們需要將此遠(yuǎn)程存儲(chǔ)庫(kù)克隆到本地文件夾。在這個(gè)工作示例中,我們將存儲(chǔ)庫(kù)克隆到D:\ Temp \ DevOps_MySQL \。以下是此操作的CMD命令:
git clone //github.com/repository-name/sakila.git D:\Temp\DevOps_MySQL
其中:
repository-name
要克隆的存儲(chǔ)庫(kù)的名稱(chēng)
sakila
包含要使用的測(cè)試數(shù)據(jù)的數(shù)據(jù)庫(kù)的名稱(chēng)
注意:
在運(yùn)行上述命令之前,請(qǐng)確保您的計(jì)算機(jī)上已安裝Git for Windows客戶(hù)端。
步驟2.在服務(wù)器上創(chuàng)建或重新創(chuàng)建數(shù)據(jù)庫(kù)
在服務(wù)器上部署數(shù)據(jù)庫(kù)之前,需要?jiǎng)?chuàng)建或重新創(chuàng)建數(shù)據(jù)庫(kù)(刪除舊數(shù)據(jù)庫(kù),然后創(chuàng)建新數(shù)據(jù)庫(kù))。這可以通過(guò)數(shù)據(jù)庫(kù)創(chuàng)建腳本,CMD和dbForge Studio for MySQL輕松完成。我們不會(huì)在本文中強(qiáng)調(diào)這一點(diǎn),因?yàn)檫@些操作非常基礎(chǔ)。
要在服務(wù)器上創(chuàng)建sakila數(shù)據(jù)庫(kù),我們將使用以下命令行腳本:
dbforgemysql.com /execute /connection:"User Id=%user-name%;password=%your-password%;Host=%your-host%" /inputfile "D:\Temp\DevOps_MySQL\Create_sakila2.sql"
請(qǐng)注意,您需要輸入自己的憑據(jù)才能使此腳本正常工作。
對(duì)于喜歡PowerShell操作環(huán)境的用戶(hù),我們還提供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 }
同樣,不要忘記將自己的憑據(jù)添加到腳本中。
步驟3.在本地和遠(yuǎn)程數(shù)據(jù)庫(kù)之間同步架構(gòu)
下面是CMD和PS腳本,用于將空的本地sakila2數(shù)據(jù)庫(kù)的模式與遠(yuǎn)程sakila數(shù)據(jù)庫(kù)同步。同步的結(jié)果是,將創(chuàng)建在配置模板時(shí)選擇的所有表,視圖,過(guò)程,函數(shù)和觸發(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)以同步指定的數(shù)據(jù)庫(kù)。請(qǐng)不要忘記使用dbForge Studio for MySQL的“模式比較”功能來(lái)準(zhǔn)備有問(wèn)題的文件。

步驟4.用數(shù)據(jù)填充數(shù)據(jù)庫(kù)
在上一步中,我們恢復(fù)了數(shù)據(jù)庫(kù)結(jié)構(gòu)。現(xiàn)在我們需要的是用測(cè)試數(shù)據(jù)填充數(shù)據(jù)庫(kù)。dbForge Studio for MySQL可以擁有三種不同的工具,可用于用數(shù)據(jù)填充數(shù)據(jù)庫(kù)。由于這三個(gè)都可以從命令行調(diào)用,因此可以在數(shù)據(jù)庫(kù)自動(dòng)化過(guò)程中使用,因此我們將分別考慮它們。
使用數(shù)據(jù)比較功能填充數(shù)據(jù)庫(kù)
您可以使用dbForge Studio for MySQL內(nèi)置的高級(jí)“Date Comparison”功能輕松地還原位于腳本文件夾或另一個(gè)數(shù)據(jù)庫(kù)中的參考數(shù)據(jù)。使用以下腳本將數(shù)據(jù)插入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 }
注意:
上面提供的腳本表示您先前已經(jīng)配置并保存了數(shù)據(jù)比較模板文件(.dcomp)以同步指定數(shù)據(jù)庫(kù)中的數(shù)據(jù)。請(qǐng)不要忘記在運(yùn)行腳本之前準(zhǔn)備有問(wèn)題的文件。

使用數(shù)據(jù)導(dǎo)入/導(dǎo)出功能填充數(shù)據(jù)庫(kù)
如果參考數(shù)據(jù)不是存儲(chǔ)在數(shù)據(jù)庫(kù)本身中,而是存儲(chǔ)在單獨(dú)的文件中,則“數(shù)據(jù)導(dǎo)入”是用數(shù)據(jù)填充數(shù)據(jù)庫(kù)的最佳選擇。dbForge Studio for MySQL提供了一種簡(jiǎn)單有效的方法,即使用尖端的Data Import/Export functionality將這些數(shù)據(jù)直接導(dǎo)入所需的表中。
使用以下腳本將數(shù)據(jù)插入地址表:
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 }
注意:
上面提供的腳本表示您先前已經(jīng)配置并保存了數(shù)據(jù)導(dǎo)入模板文件(.dit),以便將數(shù)據(jù)導(dǎo)入指定的表中。請(qǐng)不要忘記在運(yùn)行腳本之前準(zhǔn)備有問(wèn)題的文件。

使用數(shù)據(jù)生成器功能填充數(shù)據(jù)庫(kù)
dbForge Studio for MySQL具有生成數(shù)據(jù)的強(qiáng)大功能。它最適合需要在數(shù)據(jù)庫(kù)中填充大量實(shí)際數(shù)據(jù),但又不能或不希望將大量數(shù)據(jù)存儲(chǔ)在磁盤(pán)上的情況。同樣,在這種情況下,預(yù)先配置了數(shù)據(jù)生成器模板文件(.dgen),您可以使用以下腳本將數(shù)據(jù)插入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 }
注意:
在運(yùn)行上面提供的腳本之前,配置和保存數(shù)據(jù)生成器模板文件(.dgen)非常重要。

本文中提供的所有腳本均返回退出狀態(tài)。結(jié)果,如果您編譯這三個(gè)腳本-用于還原數(shù)據(jù)庫(kù)結(jié)構(gòu),同步數(shù)據(jù)庫(kù)模式和填充數(shù)據(jù)庫(kù),則將獲得一個(gè)MySQL數(shù)據(jù)庫(kù)自動(dòng)化腳本,用于還原測(cè)試數(shù)據(jù),從而可以監(jiān)視和控制執(zhí)行階段。
結(jié)論
dbForge Studio for MySQL是功能豐富的IDE,使您可以輕松地將DevOps方法擴(kuò)展到MySQL和MariaDB數(shù)據(jù)庫(kù)的開(kāi)發(fā)和部署。下載dbForge Studio For MySQL,讓您的應(yīng)用開(kāi)發(fā)沖出國(guó)際。
慧都現(xiàn)推出“軟件國(guó)產(chǎn)化服務(wù)季”dbForge Studio for MySQL直降2000,在線訂購(gòu)正版授權(quán)最低只要1026元! 點(diǎn)擊查看詳情>>