翻譯|使用教程|編輯:鮑佳佳|2020-12-28 11:51:04.007|閱讀 194 次
概述:當基于復(fù)雜的數(shù)據(jù)庫結(jié)構(gòu)開發(fā)軟件應(yīng)用程序時,通常需要在相同的輸入數(shù)據(jù)上運行各種業(yè)務(wù)邏輯測試方案。這就是重復(fù)恢復(fù)測試數(shù)據(jù)的問題所在。本文提供了僅使用一種工具dbForge Studio for MySQL自動化該過程的最簡單方法 。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
dbForge Studio for MySQL是一個在Windows平臺被廣泛使用的MySQL客戶端,它能夠使MySQL開發(fā)人員和管理人員在一個方便的環(huán)境中與他人一起完成創(chuàng)建和執(zhí)行查詢,開發(fā)和調(diào)試MySQL程序,自動化管理MySQL數(shù)據(jù)庫對象等工作。
點擊下載dbForge Studio for MySQL最新試用版
當基于復(fù)雜的數(shù)據(jù)庫結(jié)構(gòu)開發(fā)軟件應(yīng)用程序時,通常需要在相同的輸入數(shù)據(jù)上運行各種業(yè)務(wù)邏輯測試方案。這就是重復(fù)恢復(fù)測試數(shù)據(jù)的問題所在。本文提供了僅使用一種工具dbForge Studio for MySQL自動化該過程的最簡單方法 。
測試數(shù)據(jù)恢復(fù)是一個耗時且費力的過程,通常是手動完成的。因此,其自動化對于確保快速,可靠和具有成本效益的交付至關(guān)重要。但是,在開始詳細介紹如何借助dbForge Studio for MySQL自動化測試數(shù)據(jù)恢復(fù)過程之前,讓我們首先了解一些術(shù)語。
什么是DevOps?
DevOps是一個相當新且迅速傳播的概念,它描述了一組旨在使軟件開發(fā)和交付流程自動化的實踐,以便開發(fā)和IT團隊可以縮短整個服務(wù)生命周期并提供持續(xù)交付的高質(zhì)量軟件。
為什么選擇DevOps用于數(shù)據(jù)庫?
數(shù)據(jù)庫更改是執(zhí)行應(yīng)用程序部署時延遲的主要原因。因此,旨在提高數(shù)據(jù)庫更改交付速度的數(shù)據(jù)庫開發(fā)自動化導(dǎo)致迭代次數(shù)縮短,并且無疑對軟件應(yīng)用程序的持續(xù)交付產(chǎn)生積極影響。
如何使用dbForge Studio for MySQL自動執(zhí)行測試數(shù)據(jù)恢復(fù)
背景:
假設(shè)我們的數(shù)據(jù)庫源代碼位于遠程存儲庫上,并且它的測試數(shù)據(jù)必須從其他來源(例如腳本文件夾,另一個數(shù)據(jù)庫或文件)生成或獲取。
先決條件:
步驟1.克隆存儲庫
假設(shè)在遠程Git存儲庫中有一個腳本文件夾,我們需要將其用作創(chuàng)建數(shù)據(jù)庫的數(shù)據(jù)源。首先,我們需要將此遠程存儲庫克隆到本地文件夾。在這個工作示例中,我們將存儲庫克隆到D:\ Temp \ DevOps_MySQL \。以下是此操作的CMD命令:
git clone //github.com/repository-name/sakila.git D:\Temp\DevOps_MySQL
其中:
repository-name
要克隆的存儲庫的名稱
sakila
包含要使用的測試數(shù)據(jù)的數(shù)據(jù)庫的名稱
注意:
在運行上述命令之前,請確保您的計算機上已安裝Git for Windows客戶端。
步驟2.在服務(wù)器上創(chuàng)建或重新創(chuàng)建數(shù)據(jù)庫
在服務(wù)器上部署數(shù)據(jù)庫之前,需要創(chuàng)建或重新創(chuàng)建數(shù)據(jù)庫(刪除舊數(shù)據(jù)庫,然后創(chuàng)建新數(shù)據(jù)庫)。這可以通過數(shù)據(jù)庫創(chuàng)建腳本,CMD和dbForge Studio for MySQL輕松完成。我們不會在本文中強調(diào)這一點,因為這些操作非常基礎(chǔ)。
要在服務(wù)器上創(chuàng)建sakila數(shù)據(jù)庫,我們將使用以下命令行腳本:
dbforgemysql.com /execute /connection:"User Id=%user-name%;password=%your-password%;Host=%your-host%" /inputfile " D:\Temp\DevOps_MySQL\Create_sakila2.sql"
請注意,您需要輸入自己的憑據(jù)才能使此腳本正常工作。
對于喜歡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 }
同樣,不要忘記將自己的憑據(jù)添加到腳本中。
步驟3.在本地和遠程數(shù)據(jù)庫之間同步架構(gòu)
下面是CMD和PS腳本,用于將空的本地sakila2數(shù)據(jù)庫的模式與遠程sakila數(shù)據(jù)庫同步。同步的結(jié)果是,將創(chuàng)建在配置模板時選擇的所有表,視圖,過程,函數(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 }
注意:
提供的腳本表示您先前已經(jīng)配置并保存了模式比較模板文件(.scomp)以同步指定的數(shù)據(jù)庫。請不要忘記使用dbForge Studio for MySQL的“模式比較”功能來準備有問題的文件。
步驟4.用數(shù)據(jù)填充數(shù)據(jù)庫
在上一步中,我們恢復(fù)了數(shù)據(jù)庫結(jié)構(gòu)。現(xiàn)在我們需要的是用測試數(shù)據(jù)填充數(shù)據(jù)庫。dbForge Studio for MySQL可以擁有三種不同的工具,可用于用數(shù)據(jù)填充數(shù)據(jù)庫。由于這三個都可以從命令行調(diào)用,因此可以在數(shù)據(jù)庫自動化過程中使用,因此我們將分別考慮它們。
使用數(shù)據(jù)比較功能填充數(shù)據(jù)庫
您可以使用dbForge Studio for MySQL內(nèi)置的高級“日期比較”功能輕松地還原位于腳本文件夾或另一個數(shù)據(jù)庫中的參考數(shù)據(jù)。使用以下腳本將數(shù)據(jù)插入國家/地區(qū)表:
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ù)庫中的數(shù)據(jù)。請不要忘記在運行腳本之前準備有問題的文件。
使用數(shù)據(jù)導(dǎo)入/導(dǎo)出功能填充數(shù)據(jù)庫
如果參考數(shù)據(jù)不是存儲在數(shù)據(jù)庫本身中,而是存儲在單獨的文件中,則“數(shù)據(jù)導(dǎo)入”是用數(shù)據(jù)填充數(shù)據(jù)庫的最佳選擇。dbForge Studio for MySQL提供了一種簡單有效的方法,即使用最先進的數(shù)據(jù)導(dǎo)入/導(dǎo)出功能將這些數(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)入到指定的表中。請不要忘記在運行腳本之前準備有問題的文件。
使用數(shù)據(jù)生成器功能填充數(shù)據(jù)庫
dbForge Studio for MySQL具有生成數(shù)據(jù)的強大功能。它最適合需要在數(shù)據(jù)庫中填充大量實際數(shù)據(jù),但又不能或不想在磁盤上存儲大量數(shù)據(jù)的情況。在這種情況下,同樣,預(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 }
注意:
在運行上面提供的腳本之前,配置和保存數(shù)據(jù)生成器模板文件(.dgen)非常重要。
本文中提供的所有腳本均返回退出狀態(tài)。結(jié)果,如果您編譯了三個腳本-用于還原數(shù)據(jù)庫結(jié)構(gòu),同步數(shù)據(jù)庫模式和填充數(shù)據(jù)庫,您將獲得一個MySQL數(shù)據(jù)庫自動化腳本來還原測試數(shù)據(jù),從而可以監(jiān)視和控制執(zhí)行階段。
結(jié)論
dbForge Studio for MySQL是功能豐富的IDE,使您可以輕松地將DevOps方法擴展到MySQL和MariaDB數(shù)據(jù)庫開發(fā)和部署。立即下載dbForge Studio for MySQL!
好消息!!!為慶祝慧都成立17周年”dbForge Studio for MySQL直降2000,在線訂購正版授權(quán)最低只要1026元! 點擊查看詳情>>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: