HANA and additional providers

Use the live-engine matrix to qualify operations beyond the common database families.

Examples use Classic and Fluent tabs. Your choice follows you through the manual.

SAP HANA

ProviderTypes.Hana uses SAP’s native .NET driver. The CI job runs HANA Express and exercises schema/data operations, metadata, constraints, history, restart and DML rollback. DDL may autocommit. Use a custom host; the CLI driver bundle does not include an online HANA host.

HANA has its own supported type set; Guid and DateTimeOffset are outside the current matrix mappings. Review the type matrix before choosing shared column definitions.

Db2, Informix, Firebird and Sybase

ProviderThings to check
Db2 LUWDriver runtime dependencies, decimal/storage capacity and ordinary/unique index options.
InformixNative driver and database encoding; TEXT reads, integer NULL sentinels, whole-second Time and trailing-space trimming.
FirebirdDecimal storage capacity, ordinary/unique index operations and transaction behavior.
Sybase ASETEXTSIZE and string truncation settings, nullable BIT restrictions, trimmed strings and constraint-name limitations.

A shared table definition

The same authoring API describes a portable subset. This does not imply that every native extension or type maps identically. Start with simple definitions, then qualify your actual data and schema operations on each target.

CreateUsers.cs

Classic

using System.Data;
using DotNetProjects.Migrator.Framework;

[Migration(1)]
public class CreateUsers : Migration
{
    public override void Up()
    {
        Database.AddTable("Users",
            new Column("Id", DbType.Int32) { IsNullable = false },
            new Column("Name", DbType.String, 255),
            new PrimaryKeyConstraint("PK_Users", "Id"));
    }

    public override void Down() => Database.RemoveTable("Users");
}

Fluent

using DotNetProjects.Migrator.Framework;
using DotNetProjects.Migrator.Framework.Fluent;

[Migration(1)]
public class CreateUsers : FluentMigration
{
    public override void BuildUp(MigrationBuilder migration)
    {
        migration.Create.Table("Users")
            .WithColumn("Id").AsInt32().NotNullable()
            .WithColumn("Name").AsString(255)
            .WithPrimaryKey("PK_Users", "Id");
    }

    public override void BuildDown(MigrationBuilder migration)
        => migration.Delete.Table("Users");
}

Choose one authoring style

Source inventory and evidence

Ingres remains a source dialect outside the eleven-engine matrix. Redshift, Snowflake and Db2 for IBM i require separate provider/infrastructure qualification; PostgreSQL tests do not qualify Redshift, and Db2 LUW tests do not qualify IBM i.

See qualification requirements and live test setup for exact coverage and reproduction commands.