EasyDBMigrator 开源项目教程
1. 项目介绍
EasyDBMigrator 是一个专为 Delphi 设计的数据库迁移库,旨在简化数据库的演进过程。它支持多种数据库,包括 Microsoft SQL Server、Oracle、MySQL、MariaDB、PostgreSQL 和 Firebird。EasyDBMigrator 提供了一种结构化的方式来管理数据库模式的变化,避免了手动执行大量 SQL 脚本的需要。
主要特点
- 多数据库支持:支持 Microsoft SQL Server、Oracle、MySQL、MariaDB、PostgreSQL 和 Firebird。
- 简化迁移:通过 Delphi 类来记录数据库模式的变化,并将其提交到版本控制系统。
- 多版本支持:支持 Delphi XE5 到 Delphi 12 Athens 的多个版本。
- 灵活配置:可以通过 Getit Package Manager 轻松集成到项目中。
2. 项目快速启动
2.1 安装与配置
首先,确保你已经安装了 Delphi 开发环境,并且已经配置好相应的数据库连接。接下来,按照以下步骤快速启动 EasyDBMigrator。
2.1.1 添加库路径
将 EasyDBMigrator 的库路径添加到你的项目中,或者添加到 Delphi 的库路径中。你需要包含以下路径:
\lib\Logger
\lib\ConnectionManagers
\lib\Core
\lib\Runners
\lib\ORM
2.1.2 初始化迁移
在你的项目中初始化 EasyDBMigrator,并配置数据库连接参数。以下是一个简单的示例代码:
uses
EasyDB.Core,
EasyDB.Migration,
EasyDB.MSSQLRunner,
EasyDB.Logger;
var
Runner: TSQLRunner;
ConnectionParams: TConnectionParams;
begin
with ConnectionParams do
begin
Server := '127.0.0.1'; // SQL Server 地址
LoginTimeout := 30000;
Username := 'sa';
Pass := '1';
DatabaseName := 'Library';
Schema := 'dbo'; // 可选
end;
// 配置本地日志
TLogger.Instance.ConfigLocal(True, 'C:\Temp\EasyDBLog.txt');
TLogger.Instance.OnLog := OnLog;
// 创建 Runner
Runner := TSQLRunner.Create(ConnectionParams);
Runner.AddConfig.LogAllExecutions(True).UseInternalThread(True).SetProgressbar(pbTotal).RollBackAllByAnyError(True);
// 添加迁移
Runner.MigrationList.Add(TMigration.Create('TbUsers', 202301010001, 'Alex', 'Create table Users, Task Number #2701',
procedure
var
sql: string;
begin
sql := 'If Not Exists( Select * From sysobjects Where Name = ''TbUsers'' And xtype = ''U'') ' + #10 +
' Create Table TbUsers( ' + #10 +
' ID Int Primary key Identity(1, 1) Not null, ' + #10 +
' UserName Nvarchar(100), ' + #10 +
' Pass Nvarchar(50) ' + #10 +
' )';
Runner.SQLConnection.ExecuteAdHocQuery(sql);
end,
procedure
begin
Runner.SQLConnection.ExecuteAdHocQuery('DROP TABLE TbUsers');
end));
// 运行迁移
Runner.UpgradeDatabase;
end;
2.2 运行迁移
在配置好迁移后,你可以通过调用 Runner.UpgradeDatabase 来执行数据库升级,或者通过 Runner.DowngradeDatabase(版本号) 来执行数据库降级。
3. 应用案例和最佳实践
3.1 小型项目
对于小型项目,可以使用简单的迁移方式,通过匿名方法来定义迁移操作。这种方式适合快速迭代和开发。
3.2 大型项目
对于大型项目,建议使用版本化的类来定义迁移操作。每个迁移类可以对应一个数据库表或模式的变更,这样可以更好地管理和跟踪数据库的变化。
3.3 ORM 集成
EasyDBMigrator 还可以与 ORM 框架集成,提供更高级的数据库管理功能。通过 ORM 集成,可以更方便地管理数据库实体和关系。
4. 典型生态项目
4.1 Delphi ORM
Delphi ORM 是一个强大的对象关系映射框架,可以与 EasyDBMigrator 结合使用,提供更高级的数据库管理功能。通过 ORM,可以更方便地管理数据库实体和关系。
4.2 Getit Package Manager
Getit Package Manager 是 Delphi 的包管理工具,可以方便地集成 EasyDBMigrator 到你的项目中。通过 Getit,你可以轻松管理和更新 EasyDBMigrator 的依赖。
4.3 数据库连接管理
EasyDBMigrator 提供了多种数据库连接管理器,可以方便地管理不同类型的数据库连接。通过这些连接管理器,你可以轻松地在不同的数据库之间切换。
通过以上模块的介绍,你可以快速上手并使用 EasyDBMigrator 进行数据库迁移和管理。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



