ef core oracle provider (#5637)

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
This commit is contained in:
benjamin-hui 2024-07-06 02:35:52 +10:00 committed by GitHub
parent 492d6fcd35
commit ab25df077e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 3185 additions and 5 deletions

View file

@ -133,6 +133,7 @@
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
<PackageVersion Include="Npgsql" Version="7.0.7" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.18" />
<PackageVersion Include="Oracle.EntityFrameworkCore" Version="7.21.9" />
<PackageVersion Include="Polly" Version="7.2.4" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="7.0.0" />
<PackageVersion Include="System.Text.Json" Version="7.0.4" />
@ -164,6 +165,7 @@
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
<PackageVersion Include="Npgsql" Version="8.0.3" />
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" />
<PackageVersion Include="Oracle.EntityFrameworkCore" Version="8.21.121" />
<PackageVersion Include="Polly" Version="8.4.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
<PackageVersion Include="System.Text.Json" Version="8.0.3" />

View file

@ -272,6 +272,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Quartz.EntityFramework
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Quartz.EntityFrameworkCore.PostgreSql", "src\modules\Elsa.Quartz.EntityFrameworkCore.PostgreSql\Elsa.Quartz.EntityFrameworkCore.PostgreSql.csproj", "{CCCCEF8C-7D96-4BEA-B9D0-E91EDF08E65D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.EntityFrameworkCore.Oracle", "src\modules\Elsa.EntityFrameworkCore.Oracle\Elsa.EntityFrameworkCore.Oracle.csproj", "{49D8D2CF-AF68-40FA-951F-018247C97443}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.FileStorage", "src\modules\Elsa.FileStorage\Elsa.FileStorage.csproj", "{732BF088-6AD7-4C4D-9A48-8074253596D4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "storage", "storage", "{B818988E-639C-4E6E-85C1-B231BCAD9DAB}"
@ -746,6 +748,10 @@ Global
{CCCCEF8C-7D96-4BEA-B9D0-E91EDF08E65D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CCCCEF8C-7D96-4BEA-B9D0-E91EDF08E65D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CCCCEF8C-7D96-4BEA-B9D0-E91EDF08E65D}.Release|Any CPU.Build.0 = Release|Any CPU
{49D8D2CF-AF68-40FA-951F-018247C97443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{49D8D2CF-AF68-40FA-951F-018247C97443}.Debug|Any CPU.Build.0 = Debug|Any CPU
{49D8D2CF-AF68-40FA-951F-018247C97443}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49D8D2CF-AF68-40FA-951F-018247C97443}.Release|Any CPU.Build.0 = Release|Any CPU
{732BF088-6AD7-4C4D-9A48-8074253596D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{732BF088-6AD7-4C4D-9A48-8074253596D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{732BF088-6AD7-4C4D-9A48-8074253596D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -989,6 +995,7 @@ Global
{05F3B23E-CF28-467B-AD3C-595EA4ED6B96} = {AB797AF0-C12C-46DE-A157-7E25625C6200}
{74ACD9D0-8B4C-42FA-A582-E93BF0075023} = {AB797AF0-C12C-46DE-A157-7E25625C6200}
{CCCCEF8C-7D96-4BEA-B9D0-E91EDF08E65D} = {AB797AF0-C12C-46DE-A157-7E25625C6200}
{49D8D2CF-AF68-40FA-951F-018247C97443} = {9B4F139F-7D26-435C-A561-89E65A67A8E5}
{732BF088-6AD7-4C4D-9A48-8074253596D4} = {B818988E-639C-4E6E-85C1-B231BCAD9DAB}
{B818988E-639C-4E6E-85C1-B231BCAD9DAB} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79}
{29638A67-E79F-44FE-AC05-DA499EBA929E} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79}

View file

@ -4,7 +4,7 @@
mods=("Alterations" "Runtime" "Management" "Identity" "Labels")
# Define the list of providers
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql")
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql" "Oracle")
# Connection strings for each provider
typeset -A connStrings

View file

@ -4,7 +4,7 @@
mods=("Alterations" "Runtime" "Management" "Identity")
# Define the list of providers
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql")
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql" "Oracle")
# Loop through each module
for module in "${mods[@]}"; do

View file

@ -4,7 +4,7 @@
mods=("Alterations" "Runtime" "Management" "Identity" "Labels")
# Define the list of providers
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql")
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql" "Oracle")
# Loop through each module
for module in "${mods[@]}"; do

View file

@ -4,7 +4,7 @@
mods=("Alterations" "Runtime" "Management" "Identity" "Labels")
# Define the list of providers
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql")
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql" "Oracle")
# Loop through each module
for module in "${mods[@]}"; do

View file

@ -4,7 +4,7 @@
mods=("Alterations" "Runtime" "Management" "Identity" "Labels")
# Define the list of providers
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql")
providers=("MySql" "SqlServer" "Sqlite" "PostgreSql" "Oracle")
# Loop through each module
for module in "${mods[@]}"; do

View file

@ -0,0 +1,46 @@
using Elsa.EntityFrameworkCore.Common.Abstractions;
using Elsa.EntityFrameworkCore.Extensions;
using Elsa.EntityFrameworkCore.Modules.Alterations;
using Elsa.EntityFrameworkCore.Modules.Identity;
using Elsa.EntityFrameworkCore.Modules.Labels;
using Elsa.EntityFrameworkCore.Modules.Management;
using Elsa.EntityFrameworkCore.Modules.Runtime;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
namespace Elsa.EntityFrameworkCore.Oracle;
[UsedImplicitly]
public class IdentityDbContextFactory : OracleDesignTimeDbContextFactory<IdentityElsaDbContext>
{
}
[UsedImplicitly]
public class ManagementDbContextFactory : OracleDesignTimeDbContextFactory<ManagementElsaDbContext>
{
}
[UsedImplicitly]
public class RuntimeDbContextFactory : OracleDesignTimeDbContextFactory<RuntimeElsaDbContext>
{
}
[UsedImplicitly]
public class LabelsDbContextFactory : OracleDesignTimeDbContextFactory<LabelsElsaDbContext>
{
}
[UsedImplicitly]
public class AlterationsDbContextFactories : OracleDesignTimeDbContextFactory<AlterationsElsaDbContext>
{
}
public class OracleDesignTimeDbContextFactory<TDbContext> : DesignTimeDbContextFactoryBase<TDbContext> where TDbContext : DbContext
{
protected override void ConfigureBuilder(DbContextOptionsBuilder<TDbContext> builder, string connectionString)
{
builder.UseElsaOracle(GetType().Assembly, connectionString);
}
}

View file

@ -0,0 +1,28 @@
using System.Reflection;
using Elsa.EntityFrameworkCore.Common;
using Microsoft.EntityFrameworkCore;
using Oracle.EntityFrameworkCore.Infrastructure;
// ReSharper disable once CheckNamespace
namespace Elsa.EntityFrameworkCore.Extensions;
/// <summary>
/// Contains extension methods for <see cref="DbContextOptionsBuilder"/>.
/// </summary>
public static class DbContextOptionsBuilderExtensions
{
/// <summary>
/// Configures Entity Framework Core with Oracle.
/// </summary>
public static DbContextOptionsBuilder UseElsaOracle(this DbContextOptionsBuilder builder, Assembly migrationsAssembly, string connectionString, ElsaDbContextOptions? options = default, Action<OracleDbContextOptionsBuilder>? configure = default) =>
builder
.UseElsaDbContextOptions(options)
.UseOracle(connectionString, db =>
{
db
.MigrationsAssembly(options.GetMigrationsAssemblyName(migrationsAssembly))
.MigrationsHistoryTable(options.GetMigrationsHistoryTableName(), options.GetSchemaName());
configure?.Invoke(db);
});
}

View file

@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Description>
Provides Oracle EF Core migrations for various modules.
</Description>
<PackageTags>elsa module persistence efcore oracle</PackageTags>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" PrivateAssets="all" />
<PackageReference Include="Oracle.EntityFrameworkCore" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Elsa.EntityFrameworkCore\Elsa.EntityFrameworkCore.csproj" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,81 @@
using System.Reflection;
using Elsa.EntityFrameworkCore.Common;
using Elsa.EntityFrameworkCore.Modules.Alterations;
using Elsa.EntityFrameworkCore.Modules.Identity;
using Elsa.EntityFrameworkCore.Modules.Labels;
using Elsa.EntityFrameworkCore.Modules.Management;
using Elsa.EntityFrameworkCore.Modules.Runtime;
// ReSharper disable once CheckNamespace
namespace Elsa.EntityFrameworkCore.Extensions;
/// <summary>
/// Provides extensions to configure EF Core to use Oracle.
/// </summary>
public static class OracleProvidersExtensions
{
private static Assembly Assembly => typeof(OracleProvidersExtensions).Assembly;
/// <summary>
/// Configures the <see cref="EFCoreIdentityPersistenceFeature"/> to use Oracle.
/// </summary>
public static EFCoreIdentityPersistenceFeature UseOracle(this EFCoreIdentityPersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = default)
{
feature.DbContextOptionsBuilder = (_, db) => db.UseElsaOracle(Assembly, connectionString, options);
return feature;
}
/// <summary>
/// Configures the <see cref="EFCoreAlterationsPersistenceFeature"/> to use Oracle.
/// </summary>
public static EFCoreAlterationsPersistenceFeature UseOracle(this EFCoreAlterationsPersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = default)
{
feature.DbContextOptionsBuilder = (_, db) => db.UseElsaOracle(Assembly, connectionString, options);
return feature;
}
/// <summary>
/// Configures the <see cref="EFCoreLabelPersistenceFeature"/> to use Oracle.
/// </summary>
public static EFCoreLabelPersistenceFeature UseOracle(this EFCoreLabelPersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = default)
{
feature.DbContextOptionsBuilder = (_, db) => db.UseElsaOracle(Assembly, connectionString, options);
return feature;
}
/// <summary>
/// Configures the <see cref="EFCoreWorkflowDefinitionPersistenceFeature"/> to use Oracle.
/// </summary>
public static EFCoreWorkflowDefinitionPersistenceFeature UseOracle(this EFCoreWorkflowDefinitionPersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = default)
{
feature.DbContextOptionsBuilder = (_, db) => db.UseElsaOracle(Assembly, connectionString, options);
return feature;
}
/// <summary>
/// Configures the <see cref="EFCoreWorkflowInstancePersistenceFeature"/> to use Oracle.
/// </summary>
public static EFCoreWorkflowInstancePersistenceFeature UseOracle(this EFCoreWorkflowInstancePersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = default)
{
feature.DbContextOptionsBuilder = (_, db) => db.UseElsaOracle(Assembly, connectionString, options);
return feature;
}
/// <summary>
/// Configures the <see cref="WorkflowManagementPersistenceFeature"/> to use Oracle.
/// </summary>
public static WorkflowManagementPersistenceFeature UseOracle(this WorkflowManagementPersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = default)
{
feature.DbContextOptionsBuilder = (_, db) => db.UseElsaOracle(Assembly, connectionString, options);
return feature;
}
/// <summary>
/// Configures the <see cref="EFCoreWorkflowRuntimePersistenceFeature"/> to use Oracle.
/// </summary>
public static EFCoreWorkflowRuntimePersistenceFeature UseOracle(this EFCoreWorkflowRuntimePersistenceFeature feature, string connectionString, ElsaDbContextOptions? options = default)
{
feature.DbContextOptionsBuilder = (_, db) => db.UseElsaOracle(Assembly, connectionString, options);
return feature;
}
}

View file

@ -0,0 +1,3 @@
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<ConfigureAwait />
</Weavers>

View file

@ -0,0 +1,136 @@
// <auto-generated />
using System;
using Elsa.EntityFrameworkCore.Modules.Alterations;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Alterations
{
[DbContext(typeof(AlterationsElsaDbContext))]
[Migration("20240619130951_V3_2")]
partial class V3_2
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.Alterations.Core.Entities.AlterationJob", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset?>("CompletedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("PlanId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SerializedLog")
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset?>("StartedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("CompletedAt")
.HasDatabaseName("IX_AlterationJob_CompletedAt");
b.HasIndex("CreatedAt")
.HasDatabaseName("IX_AlterationJob_CreatedAt");
b.HasIndex("PlanId")
.HasDatabaseName("IX_AlterationJob_PlanId");
b.HasIndex("StartedAt")
.HasDatabaseName("IX_AlterationJob_StartedAt");
b.HasIndex("Status")
.HasDatabaseName("IX_AlterationJob_Status");
b.HasIndex("TenantId")
.HasDatabaseName("IX_AlterationJob_TenantId");
b.HasIndex("WorkflowInstanceId")
.HasDatabaseName("IX_AlterationJob_WorkflowInstanceId");
b.ToTable("AlterationJobs", "Elsa");
});
modelBuilder.Entity("Elsa.Alterations.Core.Entities.AlterationPlan", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset?>("CompletedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("SerializedAlterations")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedWorkflowInstanceFilter")
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset?>("StartedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("CompletedAt")
.HasDatabaseName("IX_AlterationPlan_CompletedAt");
b.HasIndex("CreatedAt")
.HasDatabaseName("IX_AlterationPlan_CreatedAt");
b.HasIndex("StartedAt")
.HasDatabaseName("IX_AlterationPlan_StartedAt");
b.HasIndex("Status")
.HasDatabaseName("IX_AlterationPlan_Status");
b.HasIndex("TenantId")
.HasDatabaseName("IX_AlterationPlan_TenantId");
b.ToTable("AlterationPlans", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,149 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Alterations
{
/// <inheritdoc />
public partial class V3_2 : Migration
{
private readonly Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema _schema;
/// <inheritdoc />
public V3_2(Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema schema)
{
_schema = schema;
}
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.EnsureSchema(
name: "Elsa");
migrationBuilder.CreateTable(
name: "AlterationJobs",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
PlanId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Status = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
CreatedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
StartedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
CompletedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
SerializedLog = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AlterationJobs", x => x.Id);
});
migrationBuilder.CreateTable(
name: "AlterationPlans",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Status = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
CreatedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
StartedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
CompletedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
SerializedAlterations = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedWorkflowInstanceFilter = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_AlterationPlans", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_AlterationJob_CompletedAt",
schema: _schema.Schema,
table: "AlterationJobs",
column: "CompletedAt");
migrationBuilder.CreateIndex(
name: "IX_AlterationJob_CreatedAt",
schema: _schema.Schema,
table: "AlterationJobs",
column: "CreatedAt");
migrationBuilder.CreateIndex(
name: "IX_AlterationJob_PlanId",
schema: _schema.Schema,
table: "AlterationJobs",
column: "PlanId");
migrationBuilder.CreateIndex(
name: "IX_AlterationJob_StartedAt",
schema: _schema.Schema,
table: "AlterationJobs",
column: "StartedAt");
migrationBuilder.CreateIndex(
name: "IX_AlterationJob_Status",
schema: _schema.Schema,
table: "AlterationJobs",
column: "Status");
migrationBuilder.CreateIndex(
name: "IX_AlterationJob_TenantId",
schema: _schema.Schema,
table: "AlterationJobs",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_AlterationJob_WorkflowInstanceId",
schema: _schema.Schema,
table: "AlterationJobs",
column: "WorkflowInstanceId");
migrationBuilder.CreateIndex(
name: "IX_AlterationPlan_CompletedAt",
schema: _schema.Schema,
table: "AlterationPlans",
column: "CompletedAt");
migrationBuilder.CreateIndex(
name: "IX_AlterationPlan_CreatedAt",
schema: _schema.Schema,
table: "AlterationPlans",
column: "CreatedAt");
migrationBuilder.CreateIndex(
name: "IX_AlterationPlan_StartedAt",
schema: _schema.Schema,
table: "AlterationPlans",
column: "StartedAt");
migrationBuilder.CreateIndex(
name: "IX_AlterationPlan_Status",
schema: _schema.Schema,
table: "AlterationPlans",
column: "Status");
migrationBuilder.CreateIndex(
name: "IX_AlterationPlan_TenantId",
schema: _schema.Schema,
table: "AlterationPlans",
column: "TenantId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "AlterationJobs",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "AlterationPlans",
schema: _schema.Schema);
}
}
}

View file

@ -0,0 +1,133 @@
// <auto-generated />
using System;
using Elsa.EntityFrameworkCore.Modules.Alterations;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Alterations
{
[DbContext(typeof(AlterationsElsaDbContext))]
partial class AlterationsElsaDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.Alterations.Core.Entities.AlterationJob", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset?>("CompletedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("PlanId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SerializedLog")
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset?>("StartedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("CompletedAt")
.HasDatabaseName("IX_AlterationJob_CompletedAt");
b.HasIndex("CreatedAt")
.HasDatabaseName("IX_AlterationJob_CreatedAt");
b.HasIndex("PlanId")
.HasDatabaseName("IX_AlterationJob_PlanId");
b.HasIndex("StartedAt")
.HasDatabaseName("IX_AlterationJob_StartedAt");
b.HasIndex("Status")
.HasDatabaseName("IX_AlterationJob_Status");
b.HasIndex("TenantId")
.HasDatabaseName("IX_AlterationJob_TenantId");
b.HasIndex("WorkflowInstanceId")
.HasDatabaseName("IX_AlterationJob_WorkflowInstanceId");
b.ToTable("AlterationJobs", "Elsa");
});
modelBuilder.Entity("Elsa.Alterations.Core.Entities.AlterationPlan", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset?>("CompletedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("SerializedAlterations")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedWorkflowInstanceFilter")
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset?>("StartedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("CompletedAt")
.HasDatabaseName("IX_AlterationPlan_CompletedAt");
b.HasIndex("CreatedAt")
.HasDatabaseName("IX_AlterationPlan_CreatedAt");
b.HasIndex("StartedAt")
.HasDatabaseName("IX_AlterationPlan_StartedAt");
b.HasIndex("Status")
.HasDatabaseName("IX_AlterationPlan_Status");
b.HasIndex("TenantId")
.HasDatabaseName("IX_AlterationPlan_TenantId");
b.ToTable("AlterationPlans", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,149 @@
// <auto-generated />
using Elsa.EntityFrameworkCore.Modules.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Identity
{
[DbContext(typeof(IdentityElsaDbContext))]
[Migration("20240619131023_V3_2")]
partial class V3_2
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.Identity.Entities.Application", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ClientId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("HashedApiKey")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("HashedApiKeySalt")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("HashedClientSecret")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("HashedClientSecretSalt")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Roles")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnName("Roles");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("ClientId")
.IsUnique()
.HasDatabaseName("IX_Application_ClientId");
b.HasIndex("Name")
.IsUnique()
.HasDatabaseName("IX_Application_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_Application_TenantId");
b.ToTable("Applications", "Elsa");
});
modelBuilder.Entity("Elsa.Identity.Entities.Role", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Permissions")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnName("Permissions");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique()
.HasDatabaseName("IX_Role_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_Role_TenantId");
b.ToTable("Roles", "Elsa");
});
modelBuilder.Entity("Elsa.Identity.Entities.User", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("HashedPassword")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("HashedPasswordSalt")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Roles")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnName("Roles");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique()
.HasDatabaseName("IX_User_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_User_TenantId");
b.ToTable("Users", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,139 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Identity
{
/// <inheritdoc />
public partial class V3_2 : Migration
{
private readonly Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema _schema;
/// <inheritdoc />
public V3_2(Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema schema)
{
_schema = schema;
}
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.EnsureSchema(
name: "Elsa");
migrationBuilder.CreateTable(
name: "Applications",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ClientId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
HashedClientSecret = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
HashedClientSecretSalt = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
Name = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
HashedApiKey = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
HashedApiKeySalt = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
Roles = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Applications", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Roles",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Name = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Permissions = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Roles", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Users",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Name = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
HashedPassword = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
HashedPasswordSalt = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
Roles = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Users", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_Application_ClientId",
schema: _schema.Schema,
table: "Applications",
column: "ClientId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Application_Name",
schema: _schema.Schema,
table: "Applications",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Application_TenantId",
schema: _schema.Schema,
table: "Applications",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_Role_Name",
schema: _schema.Schema,
table: "Roles",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Role_TenantId",
schema: _schema.Schema,
table: "Roles",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_User_Name",
schema: _schema.Schema,
table: "Users",
column: "Name",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_User_TenantId",
schema: _schema.Schema,
table: "Users",
column: "TenantId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Applications",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "Roles",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "Users",
schema: _schema.Schema);
}
}
}

View file

@ -0,0 +1,146 @@
// <auto-generated />
using Elsa.EntityFrameworkCore.Modules.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Identity
{
[DbContext(typeof(IdentityElsaDbContext))]
partial class IdentityElsaDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.Identity.Entities.Application", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ClientId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("HashedApiKey")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("HashedApiKeySalt")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("HashedClientSecret")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("HashedClientSecretSalt")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Roles")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnName("Roles");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("ClientId")
.IsUnique()
.HasDatabaseName("IX_Application_ClientId");
b.HasIndex("Name")
.IsUnique()
.HasDatabaseName("IX_Application_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_Application_TenantId");
b.ToTable("Applications", "Elsa");
});
modelBuilder.Entity("Elsa.Identity.Entities.Role", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Permissions")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnName("Permissions");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique()
.HasDatabaseName("IX_Role_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_Role_TenantId");
b.ToTable("Roles", "Elsa");
});
modelBuilder.Entity("Elsa.Identity.Entities.User", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("HashedPassword")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("HashedPasswordSalt")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Roles")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)")
.HasColumnName("Roles");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique()
.HasDatabaseName("IX_User_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_User_TenantId");
b.ToTable("Users", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,94 @@
// <auto-generated />
using Elsa.EntityFrameworkCore.Modules.Labels;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Labels
{
[DbContext(typeof(LabelsElsaDbContext))]
[Migration("20240619131032_V3_2")]
partial class V3_2
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.Labels.Entities.Label", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Color")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Description")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("NormalizedName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(2000)");
b.HasKey("Id");
b.ToTable("Labels", "Elsa");
});
modelBuilder.Entity("Elsa.Labels.Entities.WorkflowDefinitionLabel", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("LabelId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionVersionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("LabelId")
.HasDatabaseName("WorkflowDefinitionLabel_LabelId");
b.HasIndex("TenantId")
.HasDatabaseName("WorkflowDefinitionLabel_TenantId");
b.HasIndex("WorkflowDefinitionId")
.HasDatabaseName("WorkflowDefinitionLabel_WorkflowDefinitionId");
b.HasIndex("WorkflowDefinitionVersionId")
.HasDatabaseName("WorkflowDefinitionLabel_WorkflowDefinitionVersionId");
b.ToTable("WorkflowDefinitionLabels", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,94 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Labels
{
/// <inheritdoc />
public partial class V3_2 : Migration
{
private readonly Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema _schema;
/// <inheritdoc />
public V3_2(Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema schema)
{
_schema = schema;
}
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.EnsureSchema(
name: "Elsa");
migrationBuilder.CreateTable(
name: "Labels",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Name = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
NormalizedName = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
Description = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
Color = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Labels", x => x.Id);
});
migrationBuilder.CreateTable(
name: "WorkflowDefinitionLabels",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowDefinitionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowDefinitionVersionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
LabelId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_WorkflowDefinitionLabels", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "WorkflowDefinitionLabel_LabelId",
schema: _schema.Schema,
table: "WorkflowDefinitionLabels",
column: "LabelId");
migrationBuilder.CreateIndex(
name: "WorkflowDefinitionLabel_TenantId",
schema: _schema.Schema,
table: "WorkflowDefinitionLabels",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "WorkflowDefinitionLabel_WorkflowDefinitionId",
schema: _schema.Schema,
table: "WorkflowDefinitionLabels",
column: "WorkflowDefinitionId");
migrationBuilder.CreateIndex(
name: "WorkflowDefinitionLabel_WorkflowDefinitionVersionId",
schema: _schema.Schema,
table: "WorkflowDefinitionLabels",
column: "WorkflowDefinitionVersionId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Labels",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "WorkflowDefinitionLabels",
schema: _schema.Schema);
}
}
}

View file

@ -0,0 +1,91 @@
// <auto-generated />
using Elsa.EntityFrameworkCore.Modules.Labels;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Labels
{
[DbContext(typeof(LabelsElsaDbContext))]
partial class LabelsElsaDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.Labels.Entities.Label", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Color")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Description")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("NormalizedName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(2000)");
b.HasKey("Id");
b.ToTable("Labels", "Elsa");
});
modelBuilder.Entity("Elsa.Labels.Entities.WorkflowDefinitionLabel", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("LabelId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionVersionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("LabelId")
.HasDatabaseName("WorkflowDefinitionLabel_LabelId");
b.HasIndex("TenantId")
.HasDatabaseName("WorkflowDefinitionLabel_TenantId");
b.HasIndex("WorkflowDefinitionId")
.HasDatabaseName("WorkflowDefinitionLabel_WorkflowDefinitionId");
b.HasIndex("WorkflowDefinitionVersionId")
.HasDatabaseName("WorkflowDefinitionLabel_WorkflowDefinitionVersionId");
b.ToTable("WorkflowDefinitionLabels", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,226 @@
// <auto-generated />
using System;
using Elsa.EntityFrameworkCore.Modules.Management;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Management
{
[DbContext(typeof(ManagementElsaDbContext))]
[Migration("20240619131013_V3_2")]
partial class V3_2
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.Workflows.Management.Entities.WorkflowDefinition", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<byte[]>("BinaryData")
.HasColumnType("RAW(2000)");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Data")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("DefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Description")
.HasColumnType("NVARCHAR2(2000)");
b.Property<bool>("IsLatest")
.HasColumnType("NUMBER(1)");
b.Property<bool>("IsPublished")
.HasColumnType("NUMBER(1)");
b.Property<bool>("IsReadonly")
.HasColumnType("NUMBER(1)");
b.Property<bool>("IsSystem")
.HasColumnType("NUMBER(1)");
b.Property<string>("MaterializerContext")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("MaterializerName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Name")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ProviderName")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("StringData")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ToolVersion")
.HasColumnType("NVARCHAR2(2000)");
b.Property<bool?>("UsableAsActivity")
.HasColumnType("NUMBER(1)");
b.Property<int>("Version")
.HasColumnType("NUMBER(10)");
b.HasKey("Id");
b.HasIndex("IsLatest")
.HasDatabaseName("IX_WorkflowDefinition_IsLatest");
b.HasIndex("IsPublished")
.HasDatabaseName("IX_WorkflowDefinition_IsPublished");
b.HasIndex("IsSystem")
.HasDatabaseName("IX_WorkflowDefinition_IsSystem");
b.HasIndex("Name")
.HasDatabaseName("IX_WorkflowDefinition_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_WorkflowDefinition_TenantId");
b.HasIndex("UsableAsActivity")
.HasDatabaseName("IX_WorkflowDefinition_UsableAsActivity");
b.HasIndex("Version")
.HasDatabaseName("IX_WorkflowDefinition_Version");
b.HasIndex("DefinitionId", "Version")
.IsUnique()
.HasDatabaseName("IX_WorkflowDefinition_DefinitionId_Version");
b.ToTable("WorkflowDefinitions", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Management.Entities.WorkflowInstance", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("CorrelationId")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Data")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("DataCompressionAlgorithm")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("DefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("DefinitionVersionId")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset?>("FinishedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<int>("IncidentCount")
.HasColumnType("NUMBER(10)");
b.Property<bool>("IsSystem")
.HasColumnType("NUMBER(1)");
b.Property<string>("Name")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ParentWorkflowInstanceId")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SubStatus")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset>("UpdatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<int>("Version")
.HasColumnType("NUMBER(10)");
b.HasKey("Id");
b.HasIndex("CorrelationId")
.HasDatabaseName("IX_WorkflowInstance_CorrelationId");
b.HasIndex("CreatedAt")
.HasDatabaseName("IX_WorkflowInstance_CreatedAt");
b.HasIndex("DefinitionId")
.HasDatabaseName("IX_WorkflowInstance_DefinitionId");
b.HasIndex("FinishedAt")
.HasDatabaseName("IX_WorkflowInstance_FinishedAt");
b.HasIndex("IsSystem")
.HasDatabaseName("IX_WorkflowInstance_IsSystem");
b.HasIndex("Name")
.HasDatabaseName("IX_WorkflowInstance_Name");
b.HasIndex("Status")
.HasDatabaseName("IX_WorkflowInstance_Status");
b.HasIndex("SubStatus")
.HasDatabaseName("IX_WorkflowInstance_SubStatus");
b.HasIndex("TenantId")
.HasDatabaseName("IX_WorkflowInstance_TenantId");
b.HasIndex("UpdatedAt")
.HasDatabaseName("IX_WorkflowInstance_UpdatedAt");
b.HasIndex("Status", "DefinitionId")
.HasDatabaseName("IX_WorkflowInstance_Status_DefinitionId");
b.HasIndex("Status", "SubStatus")
.HasDatabaseName("IX_WorkflowInstance_Status_SubStatus");
b.HasIndex("SubStatus", "DefinitionId")
.HasDatabaseName("IX_WorkflowInstance_SubStatus_DefinitionId");
b.HasIndex("Status", "SubStatus", "DefinitionId", "Version")
.HasDatabaseName("IX_WorkflowInstance_Status_SubStatus_DefinitionId_Version");
b.ToTable("WorkflowInstances", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,229 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Management
{
/// <inheritdoc />
public partial class V3_2 : Migration
{
private readonly Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema _schema;
/// <inheritdoc />
public V3_2(Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema schema)
{
_schema = schema;
}
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.EnsureSchema(
name: "Elsa");
migrationBuilder.CreateTable(
name: "WorkflowDefinitions",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
DefinitionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Name = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
Description = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
ToolVersion = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
ProviderName = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
MaterializerName = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
MaterializerContext = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
StringData = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
BinaryData = table.Column<byte[]>(type: "RAW(2000)", nullable: true),
IsReadonly = table.Column<bool>(type: "NUMBER(1)", nullable: false),
IsSystem = table.Column<bool>(type: "NUMBER(1)", nullable: false),
Data = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
UsableAsActivity = table.Column<bool>(type: "NUMBER(1)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
CreatedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
Version = table.Column<int>(type: "NUMBER(10)", nullable: false),
IsLatest = table.Column<bool>(type: "NUMBER(1)", nullable: false),
IsPublished = table.Column<bool>(type: "NUMBER(1)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_WorkflowDefinitions", x => x.Id);
});
migrationBuilder.CreateTable(
name: "WorkflowInstances",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
DefinitionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
DefinitionVersionId = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
Version = table.Column<int>(type: "NUMBER(10)", nullable: false),
ParentWorkflowInstanceId = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
Status = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
SubStatus = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
CorrelationId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
Name = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
IncidentCount = table.Column<int>(type: "NUMBER(10)", nullable: false),
IsSystem = table.Column<bool>(type: "NUMBER(1)", nullable: false),
CreatedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
UpdatedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
FinishedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
Data = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
DataCompressionAlgorithm = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_WorkflowInstances", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_WorkflowDefinition_DefinitionId_Version",
schema: _schema.Schema,
table: "WorkflowDefinitions",
columns: new[] { "DefinitionId", "Version" },
unique: true);
migrationBuilder.CreateIndex(
name: "IX_WorkflowDefinition_IsLatest",
schema: _schema.Schema,
table: "WorkflowDefinitions",
column: "IsLatest");
migrationBuilder.CreateIndex(
name: "IX_WorkflowDefinition_IsPublished",
schema: _schema.Schema,
table: "WorkflowDefinitions",
column: "IsPublished");
migrationBuilder.CreateIndex(
name: "IX_WorkflowDefinition_IsSystem",
schema: _schema.Schema,
table: "WorkflowDefinitions",
column: "IsSystem");
migrationBuilder.CreateIndex(
name: "IX_WorkflowDefinition_Name",
schema: _schema.Schema,
table: "WorkflowDefinitions",
column: "Name");
migrationBuilder.CreateIndex(
name: "IX_WorkflowDefinition_TenantId",
schema: _schema.Schema,
table: "WorkflowDefinitions",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowDefinition_UsableAsActivity",
schema: _schema.Schema,
table: "WorkflowDefinitions",
column: "UsableAsActivity");
migrationBuilder.CreateIndex(
name: "IX_WorkflowDefinition_Version",
schema: _schema.Schema,
table: "WorkflowDefinitions",
column: "Version");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_CorrelationId",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "CorrelationId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_CreatedAt",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "CreatedAt");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_DefinitionId",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "DefinitionId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_FinishedAt",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "FinishedAt");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_IsSystem",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "IsSystem");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_Name",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "Name");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_Status",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "Status");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_Status_DefinitionId",
schema: _schema.Schema,
table: "WorkflowInstances",
columns: new[] { "Status", "DefinitionId" });
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_Status_SubStatus",
schema: _schema.Schema,
table: "WorkflowInstances",
columns: new[] { "Status", "SubStatus" });
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_Status_SubStatus_DefinitionId_Version",
schema: _schema.Schema,
table: "WorkflowInstances",
columns: new[] { "Status", "SubStatus", "DefinitionId", "Version" });
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_SubStatus",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "SubStatus");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_SubStatus_DefinitionId",
schema: _schema.Schema,
table: "WorkflowInstances",
columns: new[] { "SubStatus", "DefinitionId" });
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_TenantId",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowInstance_UpdatedAt",
schema: _schema.Schema,
table: "WorkflowInstances",
column: "UpdatedAt");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "WorkflowDefinitions",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "WorkflowInstances",
schema: _schema.Schema);
}
}
}

View file

@ -0,0 +1,223 @@
// <auto-generated />
using System;
using Elsa.EntityFrameworkCore.Modules.Management;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Management
{
[DbContext(typeof(ManagementElsaDbContext))]
partial class ManagementElsaDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.Workflows.Management.Entities.WorkflowDefinition", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<byte[]>("BinaryData")
.HasColumnType("RAW(2000)");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Data")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("DefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Description")
.HasColumnType("NVARCHAR2(2000)");
b.Property<bool>("IsLatest")
.HasColumnType("NUMBER(1)");
b.Property<bool>("IsPublished")
.HasColumnType("NUMBER(1)");
b.Property<bool>("IsReadonly")
.HasColumnType("NUMBER(1)");
b.Property<bool>("IsSystem")
.HasColumnType("NUMBER(1)");
b.Property<string>("MaterializerContext")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("MaterializerName")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Name")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ProviderName")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("StringData")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ToolVersion")
.HasColumnType("NVARCHAR2(2000)");
b.Property<bool?>("UsableAsActivity")
.HasColumnType("NUMBER(1)");
b.Property<int>("Version")
.HasColumnType("NUMBER(10)");
b.HasKey("Id");
b.HasIndex("IsLatest")
.HasDatabaseName("IX_WorkflowDefinition_IsLatest");
b.HasIndex("IsPublished")
.HasDatabaseName("IX_WorkflowDefinition_IsPublished");
b.HasIndex("IsSystem")
.HasDatabaseName("IX_WorkflowDefinition_IsSystem");
b.HasIndex("Name")
.HasDatabaseName("IX_WorkflowDefinition_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_WorkflowDefinition_TenantId");
b.HasIndex("UsableAsActivity")
.HasDatabaseName("IX_WorkflowDefinition_UsableAsActivity");
b.HasIndex("Version")
.HasDatabaseName("IX_WorkflowDefinition_Version");
b.HasIndex("DefinitionId", "Version")
.IsUnique()
.HasDatabaseName("IX_WorkflowDefinition_DefinitionId_Version");
b.ToTable("WorkflowDefinitions", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Management.Entities.WorkflowInstance", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("CorrelationId")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Data")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("DataCompressionAlgorithm")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("DefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("DefinitionVersionId")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset?>("FinishedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<int>("IncidentCount")
.HasColumnType("NUMBER(10)");
b.Property<bool>("IsSystem")
.HasColumnType("NUMBER(1)");
b.Property<string>("Name")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ParentWorkflowInstanceId")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SubStatus")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset>("UpdatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<int>("Version")
.HasColumnType("NUMBER(10)");
b.HasKey("Id");
b.HasIndex("CorrelationId")
.HasDatabaseName("IX_WorkflowInstance_CorrelationId");
b.HasIndex("CreatedAt")
.HasDatabaseName("IX_WorkflowInstance_CreatedAt");
b.HasIndex("DefinitionId")
.HasDatabaseName("IX_WorkflowInstance_DefinitionId");
b.HasIndex("FinishedAt")
.HasDatabaseName("IX_WorkflowInstance_FinishedAt");
b.HasIndex("IsSystem")
.HasDatabaseName("IX_WorkflowInstance_IsSystem");
b.HasIndex("Name")
.HasDatabaseName("IX_WorkflowInstance_Name");
b.HasIndex("Status")
.HasDatabaseName("IX_WorkflowInstance_Status");
b.HasIndex("SubStatus")
.HasDatabaseName("IX_WorkflowInstance_SubStatus");
b.HasIndex("TenantId")
.HasDatabaseName("IX_WorkflowInstance_TenantId");
b.HasIndex("UpdatedAt")
.HasDatabaseName("IX_WorkflowInstance_UpdatedAt");
b.HasIndex("Status", "DefinitionId")
.HasDatabaseName("IX_WorkflowInstance_Status_DefinitionId");
b.HasIndex("Status", "SubStatus")
.HasDatabaseName("IX_WorkflowInstance_Status_SubStatus");
b.HasIndex("SubStatus", "DefinitionId")
.HasDatabaseName("IX_WorkflowInstance_SubStatus_DefinitionId");
b.HasIndex("Status", "SubStatus", "DefinitionId", "Version")
.HasDatabaseName("IX_WorkflowInstance_Status_SubStatus_DefinitionId_Version");
b.ToTable("WorkflowInstances", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,383 @@
// <auto-generated />
using System;
using Elsa.EntityFrameworkCore.Modules.Runtime;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Runtime
{
[DbContext(typeof(RuntimeElsaDbContext))]
[Migration("20240619131003_V3_2")]
partial class V3_2
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.KeyValues.Entities.SerializedKeyValuePair", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SerializedValue")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex(new[] { "TenantId" }, "IX_SerializedKeyValuePair_TenantId");
b.ToTable("KeyValuePairs", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.ActivityExecutionRecord", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityName")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityNodeId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityType")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<int>("ActivityTypeVersion")
.HasColumnType("NUMBER(10)");
b.Property<DateTimeOffset?>("CompletedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<bool>("HasBookmarks")
.HasColumnType("NUMBER(1)");
b.Property<string>("SerializedActivityState")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedActivityStateCompressionAlgorithm")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedException")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedOutputs")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedPayload")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedProperties")
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset>("StartedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("ActivityId")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityId");
b.HasIndex("ActivityName")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityName");
b.HasIndex("ActivityNodeId")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId");
b.HasIndex("ActivityType")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityType");
b.HasIndex("ActivityTypeVersion")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityTypeVersion");
b.HasIndex("CompletedAt")
.HasDatabaseName("IX_ActivityExecutionRecord_CompletedAt");
b.HasIndex("HasBookmarks")
.HasDatabaseName("IX_ActivityExecutionRecord_HasBookmarks");
b.HasIndex("StartedAt")
.HasDatabaseName("IX_ActivityExecutionRecord_StartedAt");
b.HasIndex("Status")
.HasDatabaseName("IX_ActivityExecutionRecord_Status");
b.HasIndex("TenantId")
.HasDatabaseName("IX_ActivityExecutionRecord_TenantId");
b.HasIndex("WorkflowInstanceId")
.HasDatabaseName("IX_ActivityExecutionRecord_WorkflowInstanceId");
b.HasIndex("ActivityType", "ActivityTypeVersion")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityType_ActivityTypeVersion");
b.ToTable("ActivityExecutionRecords", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.StoredBookmark", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityInstanceId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityTypeName")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("CorrelationId")
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Hash")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SerializedMetadata")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedPayload")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex(new[] { "ActivityInstanceId" }, "IX_StoredBookmark_ActivityInstanceId");
b.HasIndex(new[] { "ActivityTypeName" }, "IX_StoredBookmark_ActivityTypeName");
b.HasIndex(new[] { "ActivityTypeName", "Hash" }, "IX_StoredBookmark_ActivityTypeName_Hash");
b.HasIndex(new[] { "ActivityTypeName", "Hash", "WorkflowInstanceId" }, "IX_StoredBookmark_ActivityTypeName_Hash_WorkflowInstanceId");
b.HasIndex(new[] { "CreatedAt" }, "IX_StoredBookmark_CreatedAt");
b.HasIndex(new[] { "Hash" }, "IX_StoredBookmark_Hash");
b.HasIndex(new[] { "TenantId" }, "IX_StoredBookmark_TenantId");
b.HasIndex(new[] { "WorkflowInstanceId" }, "IX_StoredBookmark_WorkflowInstanceId");
b.ToTable("Bookmarks", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.StoredTrigger", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityId")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Hash")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SerializedPayload")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionVersionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("Hash")
.HasDatabaseName("IX_StoredTrigger_Hash");
b.HasIndex("Name")
.HasDatabaseName("IX_StoredTrigger_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_StoredTrigger_TenantId");
b.HasIndex("WorkflowDefinitionId")
.HasDatabaseName("IX_StoredTrigger_WorkflowDefinitionId");
b.HasIndex("WorkflowDefinitionVersionId")
.HasDatabaseName("IX_StoredTrigger_WorkflowDefinitionVersionId");
b.ToTable("Triggers", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.WorkflowExecutionLogRecord", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityName")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityNodeId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityType")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<int>("ActivityTypeVersion")
.HasColumnType("NUMBER(10)");
b.Property<string>("EventName")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Message")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("ParentActivityInstanceId")
.HasColumnType("NVARCHAR2(450)");
b.Property<long>("Sequence")
.HasColumnType("NUMBER(19)");
b.Property<string>("SerializedActivityState")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedPayload")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Source")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset>("Timestamp")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("WorkflowDefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionVersionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<int>("WorkflowVersion")
.HasColumnType("NUMBER(10)");
b.HasKey("Id");
b.HasIndex("ActivityId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityId");
b.HasIndex("ActivityInstanceId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityInstanceId");
b.HasIndex("ActivityName")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName");
b.HasIndex("ActivityNodeId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId");
b.HasIndex("ActivityType")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType");
b.HasIndex("ActivityTypeVersion")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityTypeVersion");
b.HasIndex("EventName")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_EventName");
b.HasIndex("ParentActivityInstanceId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ParentActivityInstanceId");
b.HasIndex("Sequence")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_Sequence");
b.HasIndex("TenantId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_TenantId");
b.HasIndex("Timestamp")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_Timestamp");
b.HasIndex("WorkflowDefinitionId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowDefinitionId");
b.HasIndex("WorkflowDefinitionVersionId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowDefinitionVersionId");
b.HasIndex("WorkflowInstanceId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowInstanceId");
b.HasIndex("WorkflowVersion")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowVersion");
b.HasIndex("ActivityType", "ActivityTypeVersion")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType_ActivityTypeVersion");
b.HasIndex("Timestamp", "Sequence")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_Timestamp_Sequence");
b.ToTable("WorkflowExecutionLogRecords", "Elsa");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,422 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Runtime
{
/// <inheritdoc />
public partial class V3_2 : Migration
{
private readonly Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema _schema;
/// <inheritdoc />
public V3_2(Elsa.EntityFrameworkCore.Common.Contracts.IElsaDbContextSchema schema)
{
_schema = schema;
}
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.EnsureSchema(
name: "Elsa");
migrationBuilder.CreateTable(
name: "ActivityExecutionRecords",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityNodeId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityType = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityTypeVersion = table.Column<int>(type: "NUMBER(10)", nullable: false),
ActivityName = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
StartedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
HasBookmarks = table.Column<bool>(type: "NUMBER(1)", nullable: false),
Status = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
CompletedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
SerializedActivityState = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedActivityStateCompressionAlgorithm = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedException = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedOutputs = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedPayload = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedProperties = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_ActivityExecutionRecords", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Bookmarks",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityTypeName = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Hash = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
CorrelationId = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
CreatedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
SerializedMetadata = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedPayload = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Bookmarks", x => x.Id);
});
migrationBuilder.CreateTable(
name: "KeyValuePairs",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
SerializedValue = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_KeyValuePairs", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Triggers",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowDefinitionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowDefinitionVersionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Name = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityId = table.Column<string>(type: "NVARCHAR2(2000)", nullable: false),
Hash = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
SerializedPayload = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Triggers", x => x.Id);
});
migrationBuilder.CreateTable(
name: "WorkflowExecutionLogRecords",
schema: _schema.Schema,
columns: table => new
{
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowDefinitionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowDefinitionVersionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
WorkflowVersion = table.Column<int>(type: "NUMBER(10)", nullable: false),
ActivityInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ParentActivityInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
ActivityId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityType = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
ActivityTypeVersion = table.Column<int>(type: "NUMBER(10)", nullable: false),
ActivityName = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
ActivityNodeId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
Timestamp = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
Sequence = table.Column<long>(type: "NUMBER(19)", nullable: false),
EventName = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
Message = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
Source = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedActivityState = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
SerializedPayload = table.Column<string>(type: "NVARCHAR2(2000)", nullable: true),
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_WorkflowExecutionLogRecords", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_ActivityId",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "ActivityId");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_ActivityName",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "ActivityName");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_ActivityNodeId",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "ActivityNodeId");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_ActivityType",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "ActivityType");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_ActivityType_ActivityTypeVersion",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
columns: new[] { "ActivityType", "ActivityTypeVersion" });
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_ActivityTypeVersion",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "ActivityTypeVersion");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_CompletedAt",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "CompletedAt");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_HasBookmarks",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "HasBookmarks");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_StartedAt",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "StartedAt");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_Status",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "Status");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_TenantId",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_ActivityExecutionRecord_WorkflowInstanceId",
schema: _schema.Schema,
table: "ActivityExecutionRecords",
column: "WorkflowInstanceId");
migrationBuilder.CreateIndex(
name: "IX_StoredBookmark_ActivityInstanceId",
schema: _schema.Schema,
table: "Bookmarks",
column: "ActivityInstanceId");
migrationBuilder.CreateIndex(
name: "IX_StoredBookmark_ActivityTypeName",
schema: _schema.Schema,
table: "Bookmarks",
column: "ActivityTypeName");
migrationBuilder.CreateIndex(
name: "IX_StoredBookmark_ActivityTypeName_Hash",
schema: _schema.Schema,
table: "Bookmarks",
columns: new[] { "ActivityTypeName", "Hash" });
migrationBuilder.CreateIndex(
name: "IX_StoredBookmark_ActivityTypeName_Hash_WorkflowInstanceId",
schema: _schema.Schema,
table: "Bookmarks",
columns: new[] { "ActivityTypeName", "Hash", "WorkflowInstanceId" });
migrationBuilder.CreateIndex(
name: "IX_StoredBookmark_CreatedAt",
schema: _schema.Schema,
table: "Bookmarks",
column: "CreatedAt");
migrationBuilder.CreateIndex(
name: "IX_StoredBookmark_Hash",
schema: _schema.Schema,
table: "Bookmarks",
column: "Hash");
migrationBuilder.CreateIndex(
name: "IX_StoredBookmark_TenantId",
schema: _schema.Schema,
table: "Bookmarks",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_StoredBookmark_WorkflowInstanceId",
schema: _schema.Schema,
table: "Bookmarks",
column: "WorkflowInstanceId");
migrationBuilder.CreateIndex(
name: "IX_SerializedKeyValuePair_TenantId",
schema: _schema.Schema,
table: "KeyValuePairs",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_StoredTrigger_Hash",
schema: _schema.Schema,
table: "Triggers",
column: "Hash");
migrationBuilder.CreateIndex(
name: "IX_StoredTrigger_Name",
schema: _schema.Schema,
table: "Triggers",
column: "Name");
migrationBuilder.CreateIndex(
name: "IX_StoredTrigger_TenantId",
schema: _schema.Schema,
table: "Triggers",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_StoredTrigger_WorkflowDefinitionId",
schema: _schema.Schema,
table: "Triggers",
column: "WorkflowDefinitionId");
migrationBuilder.CreateIndex(
name: "IX_StoredTrigger_WorkflowDefinitionVersionId",
schema: _schema.Schema,
table: "Triggers",
column: "WorkflowDefinitionVersionId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_ActivityId",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "ActivityId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_ActivityInstanceId",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "ActivityInstanceId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_ActivityName",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "ActivityName");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_ActivityNodeId",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "ActivityNodeId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_ActivityType",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "ActivityType");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_ActivityType_ActivityTypeVersion",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
columns: new[] { "ActivityType", "ActivityTypeVersion" });
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_ActivityTypeVersion",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "ActivityTypeVersion");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_EventName",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "EventName");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_ParentActivityInstanceId",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "ParentActivityInstanceId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_Sequence",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "Sequence");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_TenantId",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "TenantId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_Timestamp",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "Timestamp");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_Timestamp_Sequence",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
columns: new[] { "Timestamp", "Sequence" });
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_WorkflowDefinitionId",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "WorkflowDefinitionId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_WorkflowDefinitionVersionId",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "WorkflowDefinitionVersionId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_WorkflowInstanceId",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "WorkflowInstanceId");
migrationBuilder.CreateIndex(
name: "IX_WorkflowExecutionLogRecord_WorkflowVersion",
schema: _schema.Schema,
table: "WorkflowExecutionLogRecords",
column: "WorkflowVersion");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "ActivityExecutionRecords",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "Bookmarks",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "KeyValuePairs",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "Triggers",
schema: _schema.Schema);
migrationBuilder.DropTable(
name: "WorkflowExecutionLogRecords",
schema: _schema.Schema);
}
}
}

View file

@ -0,0 +1,380 @@
// <auto-generated />
using System;
using Elsa.EntityFrameworkCore.Modules.Runtime;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Oracle.EntityFrameworkCore.Metadata;
#nullable disable
namespace Elsa.EntityFrameworkCore.Oracle.Migrations.Runtime
{
[DbContext(typeof(RuntimeElsaDbContext))]
partial class RuntimeElsaDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("Elsa")
.HasAnnotation("ProductVersion", "7.0.20")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
OracleModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Elsa.KeyValues.Entities.SerializedKeyValuePair", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SerializedValue")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex(new[] { "TenantId" }, "IX_SerializedKeyValuePair_TenantId");
b.ToTable("KeyValuePairs", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.ActivityExecutionRecord", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityName")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityNodeId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityType")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<int>("ActivityTypeVersion")
.HasColumnType("NUMBER(10)");
b.Property<DateTimeOffset?>("CompletedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<bool>("HasBookmarks")
.HasColumnType("NUMBER(1)");
b.Property<string>("SerializedActivityState")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedActivityStateCompressionAlgorithm")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedException")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedOutputs")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedPayload")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedProperties")
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset>("StartedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Status")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("ActivityId")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityId");
b.HasIndex("ActivityName")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityName");
b.HasIndex("ActivityNodeId")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId");
b.HasIndex("ActivityType")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityType");
b.HasIndex("ActivityTypeVersion")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityTypeVersion");
b.HasIndex("CompletedAt")
.HasDatabaseName("IX_ActivityExecutionRecord_CompletedAt");
b.HasIndex("HasBookmarks")
.HasDatabaseName("IX_ActivityExecutionRecord_HasBookmarks");
b.HasIndex("StartedAt")
.HasDatabaseName("IX_ActivityExecutionRecord_StartedAt");
b.HasIndex("Status")
.HasDatabaseName("IX_ActivityExecutionRecord_Status");
b.HasIndex("TenantId")
.HasDatabaseName("IX_ActivityExecutionRecord_TenantId");
b.HasIndex("WorkflowInstanceId")
.HasDatabaseName("IX_ActivityExecutionRecord_WorkflowInstanceId");
b.HasIndex("ActivityType", "ActivityTypeVersion")
.HasDatabaseName("IX_ActivityExecutionRecord_ActivityType_ActivityTypeVersion");
b.ToTable("ActivityExecutionRecords", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.StoredBookmark", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityInstanceId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityTypeName")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("CorrelationId")
.HasColumnType("NVARCHAR2(2000)");
b.Property<DateTimeOffset>("CreatedAt")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("Hash")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SerializedMetadata")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedPayload")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex(new[] { "ActivityInstanceId" }, "IX_StoredBookmark_ActivityInstanceId");
b.HasIndex(new[] { "ActivityTypeName" }, "IX_StoredBookmark_ActivityTypeName");
b.HasIndex(new[] { "ActivityTypeName", "Hash" }, "IX_StoredBookmark_ActivityTypeName_Hash");
b.HasIndex(new[] { "ActivityTypeName", "Hash", "WorkflowInstanceId" }, "IX_StoredBookmark_ActivityTypeName_Hash_WorkflowInstanceId");
b.HasIndex(new[] { "CreatedAt" }, "IX_StoredBookmark_CreatedAt");
b.HasIndex(new[] { "Hash" }, "IX_StoredBookmark_Hash");
b.HasIndex(new[] { "TenantId" }, "IX_StoredBookmark_TenantId");
b.HasIndex(new[] { "WorkflowInstanceId" }, "IX_StoredBookmark_WorkflowInstanceId");
b.ToTable("Bookmarks", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.StoredTrigger", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityId")
.IsRequired()
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Hash")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("SerializedPayload")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionVersionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.HasKey("Id");
b.HasIndex("Hash")
.HasDatabaseName("IX_StoredTrigger_Hash");
b.HasIndex("Name")
.HasDatabaseName("IX_StoredTrigger_Name");
b.HasIndex("TenantId")
.HasDatabaseName("IX_StoredTrigger_TenantId");
b.HasIndex("WorkflowDefinitionId")
.HasDatabaseName("IX_StoredTrigger_WorkflowDefinitionId");
b.HasIndex("WorkflowDefinitionVersionId")
.HasDatabaseName("IX_StoredTrigger_WorkflowDefinitionVersionId");
b.ToTable("Triggers", "Elsa");
});
modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.WorkflowExecutionLogRecord", b =>
{
b.Property<string>("Id")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityName")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityNodeId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("ActivityType")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<int>("ActivityTypeVersion")
.HasColumnType("NUMBER(10)");
b.Property<string>("EventName")
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("Message")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("ParentActivityInstanceId")
.HasColumnType("NVARCHAR2(450)");
b.Property<long>("Sequence")
.HasColumnType("NUMBER(19)");
b.Property<string>("SerializedActivityState")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("SerializedPayload")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("Source")
.HasColumnType("NVARCHAR2(2000)");
b.Property<string>("TenantId")
.HasColumnType("NVARCHAR2(450)");
b.Property<DateTimeOffset>("Timestamp")
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
b.Property<string>("WorkflowDefinitionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowDefinitionVersionId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<string>("WorkflowInstanceId")
.IsRequired()
.HasColumnType("NVARCHAR2(450)");
b.Property<int>("WorkflowVersion")
.HasColumnType("NUMBER(10)");
b.HasKey("Id");
b.HasIndex("ActivityId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityId");
b.HasIndex("ActivityInstanceId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityInstanceId");
b.HasIndex("ActivityName")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName");
b.HasIndex("ActivityNodeId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId");
b.HasIndex("ActivityType")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType");
b.HasIndex("ActivityTypeVersion")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityTypeVersion");
b.HasIndex("EventName")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_EventName");
b.HasIndex("ParentActivityInstanceId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ParentActivityInstanceId");
b.HasIndex("Sequence")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_Sequence");
b.HasIndex("TenantId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_TenantId");
b.HasIndex("Timestamp")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_Timestamp");
b.HasIndex("WorkflowDefinitionId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowDefinitionId");
b.HasIndex("WorkflowDefinitionVersionId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowDefinitionVersionId");
b.HasIndex("WorkflowInstanceId")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowInstanceId");
b.HasIndex("WorkflowVersion")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowVersion");
b.HasIndex("ActivityType", "ActivityTypeVersion")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType_ActivityTypeVersion");
b.HasIndex("Timestamp", "Sequence")
.HasDatabaseName("IX_WorkflowExecutionLogRecord_Timestamp_Sequence");
b.ToTable("WorkflowExecutionLogRecords", "Elsa");
});
#pragma warning restore 612, 618
}
}
}