EasyDBMigrator 开源项目教程

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),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值