如何借助数据库管理工具自动测试数据恢复过程

当基于复杂的数据库结构开发软件应用程序时 , 通常有必要在相同的输入数据上运行各种业务逻辑测试方案 。 这就是重复恢复测试数据的问题所在 。 本文提供了一种最简单方法工具仅使用dbForge Studio for MySQL自动化该过程。
测试数据恢复是一个耗时且费力的过程 , 通常是手动完成的 。 因此 , 其自动化对于确保快速 , 可靠和具有成本效益的交付至关重要 。 但是 , 在开始详细介绍如何借助dbForge Studio for MySQL自动化测试数据恢复过程之前 , 让我们首先了解一些术语 。
慧都现推出“软件国产化服务季”JAVA、数据库开发控件应有尽有!点击文末“了解更多”即刻拥有!什么是DevOps?
DevOps是一个相当新且迅速传播的概念 , 它描述了一组旨在使软件开发和交付流程自动化的实践 , 以便开发和IT团队可以缩短整个服务生命周期并提供持续交付的高质量软件 。
为什么选择DevOps用于数据库?
数据库更改是执行应用程序部署时延迟的主要原因 。 因此 , 旨在提高数据库变更交付速度的数据库开发自动化导致迭代次数缩短 , 并且无疑对软件应用程序的持续交付产生积极影响 。
如何使用dbForge Studio for MySQL自动执行测试数据恢复
背景:假设我们的数据库源代码位于远程存储库上 , 并且它的测试数据必须从其他来源(例如脚本文件夹 , 另一个数据库或文件)生成或获取 。
先决条件:

  • 已安装的dbForge Studio for MySQL
  • 先前使用dbForge Studio for MySQL配置的必需模板文件(.scomp , .dcomp , .dit和/或.dgen) 。
步骤1.克隆存储库
假设在远程Git存储库中有一个脚本文件夹 , 我们需要将其用作创建数据库的数据源 。 首先 , 我们需要将此远程存储库克隆到本地文件夹 。 在这个工作示例中 , 我们将存储库克隆到D:\ Temp \ DevOps_MySQL \ 。 以下是此操作的CMD命令:
git cloneD:\Temp\DevOps_MySQL其中:repository-name要克隆的存储库的名称sakila包含要使用的测试数据的数据库的名称
注意:在运行上述命令之前 , 请确保您的计算机上已安装Git for Windows客户端 。
步骤2.在服务器上创建或重新创建数据库
在服务器上部署数据库之前 , 需要创建或重新创建数据库(删除旧数据库 , 然后创建新数据库) 。 这可以通过数据库创建脚本 , CMD和dbForge Studio for MySQL轻松完成 。 我们不会在本文中强调这一点 , 因为这些操作非常基础 。
要在服务器上创建sakila数据库 , 我们将使用以下命令行脚本:
dbforgemysql.com /execute /connection:"User Id=%user-name%;password=%your-password%;Host=%your-host%" /inputfile "D:\Temp\DevOps_MySQL\Create_sakila2.sql"请注意 , 您需要输入自己的凭据才能使此脚本正常工作 。
对于喜欢PowerShell操作环境的用户 , 我们还提供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数据库同步 。 同步的结果是 , 将创建在配置模板时选择的所有表 , 视图 , 过程 , 函数和触发器 。
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" /syncif ($? -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”功能轻松地还原位于脚本文件夹或另一个数据库中的参考数据 。 使用以下脚本将数据插入