Added support of Oracle as persistence EF Provider (#1275)
* Added support of Oracle as persistence database provider * Added migration for Oracle * Fixed bugs in oracle data types * fixing some comments
This commit is contained in:
parent
20406c5e39
commit
726c16b702
25
Elsa.sln
25
Elsa.sln
|
|
@ -229,6 +229,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.DistributedLocking.Azu
|
|||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "blazor", "blazor", "{D86B94DC-A53C-4A67-A820-828DD359C49B}"
|
||||
EndProject
|
||||
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "aspnetcore", "aspnetcore", "{C869CC72-9A98-4246-9A76-6A50F48AFD85}"
|
||||
EndProject
|
||||
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElsaDashboard.Samples.AspNetCore.Monolith", "src\samples\dashboard\aspnetcore\ElsaDashboard.Samples.AspNetCore.Monolith\ElsaDashboard.Samples.AspNetCore.Monolith.csproj", "{F1EF5639-021A-4D22-9D4A-73D57C88EBFA}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.Persistence.YesSql", "src\samples\persistence\Elsa.Samples.Persistence.YesSql\Elsa.Samples.Persistence.YesSql.csproj", "{3A30EFFE-32D8-40B8-9C62-427037BB5424}"
|
||||
|
|
@ -243,6 +247,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{D7F754
|
|||
docker\Dockerfile-elsa-dashboard-and-server = docker\Dockerfile-elsa-dashboard-and-server
|
||||
docker\README.md = docker\README.md
|
||||
EndProjectSection
|
||||
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Persistence.EntityFramework.MySql", "src\persistence\Elsa.Persistence.EntityFramework\Elsa.Persistence.EntityFramework.MySql\Elsa.Persistence.EntityFramework.MySql.csproj", "{D55BC08B-CA82-478A-99F7-EDE90AC33160}"
|
||||
EndProject
|
||||
|
|
@ -262,12 +267,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "aspnetcore", "aspnetcore",
|
|||
docker\Dockerfile-elsa-dashboard-and-server = docker\Dockerfile-elsa-dashboard-and-server
|
||||
docker\README.md = docker\README.md
|
||||
EndProjectSection
|
||||
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "github", "github", "{3BF2C5A9-AC69-4587-833F-C16CFC97E100}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.github\workflows\publish-latest-dashboard-and-server-docker.yml = .github\workflows\publish-latest-dashboard-and-server-docker.yml
|
||||
.github\workflows\publish-latest-dashboard-docker.yml = .github\workflows\publish-latest-dashboard-docker.yml
|
||||
|
||||
.github\workflows\publish-latest-designer-npm.yml = .github\workflows\publish-latest-designer-npm.yml
|
||||
|
||||
.github\workflows\publish-latest-server-docker.yml = .github\workflows\publish-latest-server-docker.yml
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
|
@ -280,6 +288,7 @@ EndProject
|
|||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "providers", "providers", "{EC5D4AFD-3F7F-4B51-9C38-F18C60618731}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Providers.Redis", "src\providers\Elsa.Providers.Redis\Elsa.Providers.Redis.csproj", "{9ACA06DA-9AFE-41A2-8109-EFED8B9B14A1}"
|
||||
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.DistributedLocking.Redis", "src\locking\Elsa.DistributedLocking.Redis\Elsa.DistributedLocking.Redis.csproj", "{D1644D32-AA51-4D10-942E-F2722DB963B4}"
|
||||
EndProject
|
||||
|
|
@ -309,6 +318,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Webhooks.Persistence.Y
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElsaDashboard.Web", "src\dashboards\ElsaDashboard\ElsaDashboard.Web.csproj", "{1129868E-BA72-44C4-941C-A28D9001504B}"
|
||||
EndProject
|
||||
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElsaDashboard.Samples.BlazorWasm", "src\samples\dashboard\blazor\ElsaDashboard.Samples.BlazorWasm\ElsaDashboard.Samples.BlazorWasm.csproj", "{24A99602-F743-4B1A-AC96-599F34AE916C}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "html", "html", "{8E6215AB-FDD3-4011-B598-B6BB63F294BB}"
|
||||
|
|
@ -319,6 +329,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "html", "html", "{8E6215AB-F
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElsaDashboard.Samples.BlazorServer", "src\samples\dashboard\blazor\ElsaDashboard.Samples.BlazorServer\ElsaDashboard.Samples.BlazorServer.csproj", "{6A03B177-09E0-4421-9704-945E6248AB69}"
|
||||
EndProject
|
||||
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Persistence.EntityFramework.Oracle", "src\persistence\Elsa.Persistence.EntityFramework\Elsa.Persistence.EntityFramework.Oracle\Elsa.Persistence.EntityFramework.Oracle.csproj", "{FE6FC5F9-349A-4A3A-B291-CE0614030D5C}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.FaultyWorkflows", "src\samples\aspnet\Elsa.Samples.FaultyWorkflows\Elsa.Samples.FaultyWorkflows.csproj", "{84751112-C2B7-41D4-98F5-D87D7C2E1DAE}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Activities.Conductor", "src\activities\Elsa.Activities.Conductor\Elsa.Activities.Conductor.csproj", "{4D4022DD-244B-47EE-95FA-7071EC687B24}"
|
||||
|
|
@ -328,6 +341,7 @@ EndProject
|
|||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.CustomTenantIdSource", "src\samples\aspnet\Elsa.Samples.CustomTenantIdSource\Elsa.Samples.CustomTenantIdSource.csproj", "{6E191628-927B-42FB-8805-D2977D8FC4E3}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElsaDashboard.Samples.AspNetCore.SubPath", "src\samples\dashboard\aspnetcore\ElsaDashboard.Samples.AspNetCore.SubPath\ElsaDashboard.Samples.AspNetCore.SubPath.csproj", "{BB715C0C-BE88-4F7F-A43F-1F8DFC9A1388}"
|
||||
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
|
@ -751,6 +765,12 @@ Global
|
|||
{84751112-C2B7-41D4-98F5-D87D7C2E1DAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{84751112-C2B7-41D4-98F5-D87D7C2E1DAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{84751112-C2B7-41D4-98F5-D87D7C2E1DAE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
|
||||
{FE6FC5F9-349A-4A3A-B291-CE0614030D5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{FE6FC5F9-349A-4A3A-B291-CE0614030D5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FE6FC5F9-349A-4A3A-B291-CE0614030D5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FE6FC5F9-349A-4A3A-B291-CE0614030D5C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
|
||||
{4D4022DD-244B-47EE-95FA-7071EC687B24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4D4022DD-244B-47EE-95FA-7071EC687B24}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4D4022DD-244B-47EE-95FA-7071EC687B24}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -763,6 +783,7 @@ Global
|
|||
{BB715C0C-BE88-4F7F-A43F-1F8DFC9A1388}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BB715C0C-BE88-4F7F-A43F-1F8DFC9A1388}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BB715C0C-BE88-4F7F-A43F-1F8DFC9A1388}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
@ -903,10 +924,14 @@ Global
|
|||
{8E6215AB-FDD3-4011-B598-B6BB63F294BB} = {4673732F-2853-47BD-91B8-C95C229D2C89}
|
||||
{6A03B177-09E0-4421-9704-945E6248AB69} = {D86B94DC-A53C-4A67-A820-828DD359C49B}
|
||||
{84751112-C2B7-41D4-98F5-D87D7C2E1DAE} = {22E75696-6FE9-436A-9097-EE21C603F818}
|
||||
|
||||
{FE6FC5F9-349A-4A3A-B291-CE0614030D5C} = {C865B0FD-E505-48F0-BFAF-0D4D7C1B5CA1}
|
||||
|
||||
{4D4022DD-244B-47EE-95FA-7071EC687B24} = {B43B546E-23F3-46E8-ACB7-D04F05CDA180}
|
||||
{39DE1EE2-DF4F-44EB-9F5A-551BEADD6673} = {4673732F-2853-47BD-91B8-C95C229D2C89}
|
||||
{6E191628-927B-42FB-8805-D2977D8FC4E3} = {22E75696-6FE9-436A-9097-EE21C603F818}
|
||||
{BB715C0C-BE88-4F7F-A43F-1F8DFC9A1388} = {39DE1EE2-DF4F-44EB-9F5A-551BEADD6673}
|
||||
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {8B0975FD-7050-48B0-88C5-48C33378E158}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
using Elsa.Persistence.EntityFramework.Core;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
|
||||
namespace Elsa.Persistence.EntityFramework.Oracle
|
||||
{
|
||||
public static class DbContextOptionsBuilderExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Configures the context to use Oracle.
|
||||
/// </summary>
|
||||
public static DbContextOptionsBuilder UseOracle(this DbContextOptionsBuilder builder, string connectionString) =>
|
||||
builder.UseOracle(connectionString, db => db
|
||||
.MigrationsAssembly(typeof(OracleElsaContextFactory).Assembly.GetName().Name)
|
||||
.MigrationsHistoryTable(ElsaContext.MigrationsHistoryTable, ElsaContext.ElsaSchema));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<Import Project="..\..\..\..\common.props" />
|
||||
<Import Project="..\..\..\..\configureawait.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0</TargetFrameworks>
|
||||
<Description>
|
||||
Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application.
|
||||
This package provides Entity Framework Core migrations for the Oracle database provider.
|
||||
</Description>
|
||||
<PackageTags>elsa, workflows, efcore, oracle</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Elsa.Persistence.EntityFramework.Core\Elsa.Persistence.EntityFramework.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.6">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Oracle.EntityFrameworkCore" Version="5.21.1" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Migrations\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
|
||||
<ConfigureAwait />
|
||||
</Weavers>
|
||||
|
|
@ -0,0 +1,314 @@
|
|||
// <auto-generated />
|
||||
using System;
|
||||
using Elsa.Persistence.EntityFramework.Core;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Oracle.EntityFrameworkCore.Metadata;
|
||||
|
||||
namespace Elsa.Persistence.EntityFramework.Oracle.Migrations
|
||||
{
|
||||
[DbContext(typeof(ElsaContext))]
|
||||
[Migration("20210707065825_Initial")]
|
||||
partial class Initial
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasDefaultSchema("Elsa")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128)
|
||||
.HasAnnotation("ProductVersion", "5.0.6")
|
||||
.HasAnnotation("Oracle:ValueGenerationStrategy", OracleValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
modelBuilder.Entity("Elsa.Models.Bookmark", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ActivityId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ActivityType")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("CorrelationId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("Hash")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("Model")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(2000)");
|
||||
|
||||
b.Property<string>("ModelType")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(2000)");
|
||||
|
||||
b.Property<string>("TenantId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("WorkflowInstanceId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ActivityId")
|
||||
.HasDatabaseName("IX_Bookmark_ActivityId");
|
||||
|
||||
b.HasIndex("ActivityType")
|
||||
.HasDatabaseName("IX_Bookmark_ActivityType");
|
||||
|
||||
b.HasIndex("CorrelationId")
|
||||
.HasDatabaseName("IX_Bookmark_CorrelationId");
|
||||
|
||||
b.HasIndex("Hash")
|
||||
.HasDatabaseName("IX_Bookmark_Hash");
|
||||
|
||||
b.HasIndex("TenantId")
|
||||
.HasDatabaseName("IX_Bookmark_TenantId");
|
||||
|
||||
b.HasIndex("WorkflowInstanceId")
|
||||
.HasDatabaseName("IX_Bookmark_WorkflowInstanceId");
|
||||
|
||||
b.HasIndex("ActivityType", "TenantId", "Hash")
|
||||
.HasDatabaseName("IX_Bookmark_ActivityType_TenantId_Hash");
|
||||
|
||||
b.HasIndex("Hash", "CorrelationId", "TenantId")
|
||||
.HasDatabaseName("IX_Bookmark_Hash_CorrelationId_TenantId");
|
||||
|
||||
b.ToTable("Bookmarks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Elsa.Models.WorkflowDefinition", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("Data")
|
||||
.HasColumnType("NVARCHAR2(2000)");
|
||||
|
||||
b.Property<string>("DefinitionId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<bool>("DeleteCompletedInstances")
|
||||
.HasColumnType("NUMBER(1)");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("NVARCHAR2(2000)");
|
||||
|
||||
b.Property<string>("DisplayName")
|
||||
.HasColumnType("NVARCHAR2(2000)");
|
||||
|
||||
b.Property<bool>("IsLatest")
|
||||
.HasColumnType("NUMBER(1)");
|
||||
|
||||
b.Property<bool>("IsPublished")
|
||||
.HasColumnType("NUMBER(1)");
|
||||
|
||||
b.Property<bool>("IsSingleton")
|
||||
.HasColumnType("NUMBER(1)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<int>("PersistenceBehavior")
|
||||
.HasColumnType("NUMBER(10)");
|
||||
|
||||
b.Property<string>("Tag")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("TenantId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
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("Name")
|
||||
.HasDatabaseName("IX_WorkflowDefinition_Name");
|
||||
|
||||
b.HasIndex("Tag")
|
||||
.HasDatabaseName("IX_WorkflowDefinition_Tag");
|
||||
|
||||
b.HasIndex("TenantId")
|
||||
.HasDatabaseName("IX_WorkflowDefinition_TenantId");
|
||||
|
||||
b.HasIndex("Version")
|
||||
.HasDatabaseName("IX_WorkflowDefinition_Version");
|
||||
|
||||
b.HasIndex("DefinitionId", "Version")
|
||||
.IsUnique()
|
||||
.HasDatabaseName("IX_WorkflowDefinition_DefinitionId_VersionId");
|
||||
|
||||
b.ToTable("WorkflowDefinitions");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Elsa.Models.WorkflowExecutionLogRecord", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ActivityId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ActivityType")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("Data")
|
||||
.HasColumnType("NVARCHAR2(2000)");
|
||||
|
||||
b.Property<string>("EventName")
|
||||
.HasColumnType("NVARCHAR2(2000)");
|
||||
|
||||
b.Property<string>("Message")
|
||||
.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>("WorkflowInstanceId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ActivityId")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityId");
|
||||
|
||||
b.HasIndex("ActivityType")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType");
|
||||
|
||||
b.HasIndex("TenantId")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_TenantId");
|
||||
|
||||
b.HasIndex("Timestamp")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_Timestamp");
|
||||
|
||||
b.HasIndex("WorkflowInstanceId")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowInstanceId");
|
||||
|
||||
b.ToTable("WorkflowExecutionLogRecords");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Elsa.Models.WorkflowInstance", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<DateTimeOffset?>("CancelledAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<string>("ContextId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ContextType")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("CorrelationId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
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<DateTimeOffset?>("FaultedAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<DateTimeOffset?>("FinishedAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<string>("LastExecutedActivityId")
|
||||
.HasColumnType("NVARCHAR2(2000)");
|
||||
|
||||
b.Property<DateTimeOffset?>("LastExecutedAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("TenantId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<int>("Version")
|
||||
.HasColumnType("NUMBER(10)");
|
||||
|
||||
b.Property<int>("WorkflowStatus")
|
||||
.HasColumnType("NUMBER(10)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ContextId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_ContextId");
|
||||
|
||||
b.HasIndex("ContextType")
|
||||
.HasDatabaseName("IX_WorkflowInstance_ContextType");
|
||||
|
||||
b.HasIndex("CorrelationId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_CorrelationId");
|
||||
|
||||
b.HasIndex("CreatedAt")
|
||||
.HasDatabaseName("IX_WorkflowInstance_CreatedAt");
|
||||
|
||||
b.HasIndex("DefinitionId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_DefinitionId");
|
||||
|
||||
b.HasIndex("FaultedAt")
|
||||
.HasDatabaseName("IX_WorkflowInstance_FaultedAt");
|
||||
|
||||
b.HasIndex("FinishedAt")
|
||||
.HasDatabaseName("IX_WorkflowInstance_FinishedAt");
|
||||
|
||||
b.HasIndex("LastExecutedAt")
|
||||
.HasDatabaseName("IX_WorkflowInstance_LastExecutedAt");
|
||||
|
||||
b.HasIndex("Name")
|
||||
.HasDatabaseName("IX_WorkflowInstance_Name");
|
||||
|
||||
b.HasIndex("TenantId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_TenantId");
|
||||
|
||||
b.HasIndex("WorkflowStatus")
|
||||
.HasDatabaseName("IX_WorkflowInstance_WorkflowStatus");
|
||||
|
||||
b.HasIndex("WorkflowStatus", "DefinitionId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_WorkflowStatus_DefinitionId");
|
||||
|
||||
b.HasIndex("WorkflowStatus", "DefinitionId", "Version")
|
||||
.HasDatabaseName("IX_WorkflowInstance_WorkflowStatus_DefinitionId_Version");
|
||||
|
||||
b.ToTable("WorkflowInstances");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,325 @@
|
|||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
namespace Elsa.Persistence.EntityFramework.Oracle.Migrations
|
||||
{
|
||||
public partial class Initial : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.EnsureSchema(
|
||||
name: "Elsa");
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Bookmarks",
|
||||
schema: "Elsa",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
Hash = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
Model = table.Column<string>(type: "NCLOB", nullable: false),
|
||||
ModelType = table.Column<string>(type: "NCLOB", nullable: false),
|
||||
ActivityType = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
ActivityId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
WorkflowInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
CorrelationId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Bookmarks", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "WorkflowDefinitions",
|
||||
schema: "Elsa",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
DefinitionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
Name = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
DisplayName = table.Column<string>(type: "NCLOB", nullable: true),
|
||||
Description = table.Column<string>(type: "NCLOB", nullable: true),
|
||||
Version = table.Column<int>(type: "NUMBER(10)", nullable: false),
|
||||
IsSingleton = table.Column<bool>(type: "NUMBER(1)", nullable: false),
|
||||
PersistenceBehavior = table.Column<int>(type: "NUMBER(10)", nullable: false),
|
||||
DeleteCompletedInstances = table.Column<bool>(type: "NUMBER(1)", nullable: false),
|
||||
IsPublished = table.Column<bool>(type: "NUMBER(1)", nullable: false),
|
||||
IsLatest = table.Column<bool>(type: "NUMBER(1)", nullable: false),
|
||||
Tag = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
Data = table.Column<string>(type: "NCLOB", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_WorkflowDefinitions", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "WorkflowExecutionLogRecords",
|
||||
schema: "Elsa",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
WorkflowInstanceId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
ActivityId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
ActivityType = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
Timestamp = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
|
||||
EventName = table.Column<string>(type: "NCLOB", nullable: true),
|
||||
Message = table.Column<string>(type: "NCLOB", nullable: true),
|
||||
Source = table.Column<string>(type: "NCLOB", nullable: true),
|
||||
Data = table.Column<string>(type: "NCLOB", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_WorkflowExecutionLogRecords", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "WorkflowInstances",
|
||||
schema: "Elsa",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
DefinitionId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
TenantId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
Version = table.Column<int>(type: "NUMBER(10)", nullable: false),
|
||||
WorkflowStatus = table.Column<int>(type: "NUMBER(10)", nullable: false),
|
||||
CorrelationId = table.Column<string>(type: "NVARCHAR2(450)", nullable: false),
|
||||
ContextType = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
ContextId = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
Name = table.Column<string>(type: "NVARCHAR2(450)", nullable: true),
|
||||
CreatedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: false),
|
||||
LastExecutedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
|
||||
FinishedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
|
||||
CancelledAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
|
||||
FaultedAt = table.Column<DateTimeOffset>(type: "TIMESTAMP(7) WITH TIME ZONE", nullable: true),
|
||||
LastExecutedActivityId = table.Column<string>(type: "NCLOB", nullable: true),
|
||||
Data = table.Column<string>(type: "NCLOB", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_WorkflowInstances", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Bookmark_ActivityId",
|
||||
schema: "Elsa",
|
||||
table: "Bookmarks",
|
||||
column: "ActivityId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Bookmark_ActivityType",
|
||||
schema: "Elsa",
|
||||
table: "Bookmarks",
|
||||
column: "ActivityType");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Bookmark_ActivityType_TenantId_Hash",
|
||||
schema: "Elsa",
|
||||
table: "Bookmarks",
|
||||
columns: new[] { "ActivityType", "TenantId", "Hash" });
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Bookmark_CorrelationId",
|
||||
schema: "Elsa",
|
||||
table: "Bookmarks",
|
||||
column: "CorrelationId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Bookmark_Hash",
|
||||
schema: "Elsa",
|
||||
table: "Bookmarks",
|
||||
column: "Hash");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Bookmark_Hash_CorrelationId_TenantId",
|
||||
schema: "Elsa",
|
||||
table: "Bookmarks",
|
||||
columns: new[] { "Hash", "CorrelationId", "TenantId" });
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Bookmark_TenantId",
|
||||
schema: "Elsa",
|
||||
table: "Bookmarks",
|
||||
column: "TenantId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Bookmark_WorkflowInstanceId",
|
||||
schema: "Elsa",
|
||||
table: "Bookmarks",
|
||||
column: "WorkflowInstanceId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowDefinition_DefinitionId_VersionId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowDefinitions",
|
||||
columns: new[] { "DefinitionId", "Version" },
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowDefinition_IsLatest",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowDefinitions",
|
||||
column: "IsLatest");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowDefinition_IsPublished",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowDefinitions",
|
||||
column: "IsPublished");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowDefinition_Name",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowDefinitions",
|
||||
column: "Name");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowDefinition_Tag",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowDefinitions",
|
||||
column: "Tag");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowDefinition_TenantId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowDefinitions",
|
||||
column: "TenantId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowDefinition_Version",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowDefinitions",
|
||||
column: "Version");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowExecutionLogRecord_ActivityId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowExecutionLogRecords",
|
||||
column: "ActivityId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowExecutionLogRecord_ActivityType",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowExecutionLogRecords",
|
||||
column: "ActivityType");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowExecutionLogRecord_TenantId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowExecutionLogRecords",
|
||||
column: "TenantId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowExecutionLogRecord_Timestamp",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowExecutionLogRecords",
|
||||
column: "Timestamp");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowExecutionLogRecord_WorkflowInstanceId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowExecutionLogRecords",
|
||||
column: "WorkflowInstanceId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_ContextId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "ContextId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_ContextType",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "ContextType");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_CorrelationId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "CorrelationId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_CreatedAt",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "CreatedAt");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_DefinitionId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "DefinitionId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_FaultedAt",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "FaultedAt");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_FinishedAt",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "FinishedAt");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_LastExecutedAt",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "LastExecutedAt");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_Name",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "Name");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_TenantId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "TenantId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_WorkflowStatus",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
column: "WorkflowStatus");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_WorkflowStatus_DefinitionId",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
columns: new[] { "WorkflowStatus", "DefinitionId" });
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkflowInstance_WorkflowStatus_DefinitionId_Version",
|
||||
schema: "Elsa",
|
||||
table: "WorkflowInstances",
|
||||
columns: new[] { "WorkflowStatus", "DefinitionId", "Version" });
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "Bookmarks",
|
||||
schema: "Elsa");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "WorkflowDefinitions",
|
||||
schema: "Elsa");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "WorkflowExecutionLogRecords",
|
||||
schema: "Elsa");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "WorkflowInstances",
|
||||
schema: "Elsa");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,312 @@
|
|||
// <auto-generated />
|
||||
using System;
|
||||
using Elsa.Persistence.EntityFramework.Core;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Oracle.EntityFrameworkCore.Metadata;
|
||||
|
||||
namespace Elsa.Persistence.EntityFramework.Oracle.Migrations
|
||||
{
|
||||
[DbContext(typeof(ElsaContext))]
|
||||
partial class ElsaContextModelSnapshot : ModelSnapshot
|
||||
{
|
||||
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasDefaultSchema("Elsa")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128)
|
||||
.HasAnnotation("ProductVersion", "5.0.6")
|
||||
.HasAnnotation("Oracle:ValueGenerationStrategy", OracleValueGenerationStrategy.IdentityColumn);
|
||||
|
||||
modelBuilder.Entity("Elsa.Models.Bookmark", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ActivityId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ActivityType")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("CorrelationId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("Hash")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("Model")
|
||||
.IsRequired()
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<string>("ModelType")
|
||||
.IsRequired()
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<string>("TenantId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("WorkflowInstanceId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ActivityId")
|
||||
.HasDatabaseName("IX_Bookmark_ActivityId");
|
||||
|
||||
b.HasIndex("ActivityType")
|
||||
.HasDatabaseName("IX_Bookmark_ActivityType");
|
||||
|
||||
b.HasIndex("CorrelationId")
|
||||
.HasDatabaseName("IX_Bookmark_CorrelationId");
|
||||
|
||||
b.HasIndex("Hash")
|
||||
.HasDatabaseName("IX_Bookmark_Hash");
|
||||
|
||||
b.HasIndex("TenantId")
|
||||
.HasDatabaseName("IX_Bookmark_TenantId");
|
||||
|
||||
b.HasIndex("WorkflowInstanceId")
|
||||
.HasDatabaseName("IX_Bookmark_WorkflowInstanceId");
|
||||
|
||||
b.HasIndex("ActivityType", "TenantId", "Hash")
|
||||
.HasDatabaseName("IX_Bookmark_ActivityType_TenantId_Hash");
|
||||
|
||||
b.HasIndex("Hash", "CorrelationId", "TenantId")
|
||||
.HasDatabaseName("IX_Bookmark_Hash_CorrelationId_TenantId");
|
||||
|
||||
b.ToTable("Bookmarks");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Elsa.Models.WorkflowDefinition", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("Data")
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<string>("DefinitionId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<bool>("DeleteCompletedInstances")
|
||||
.HasColumnType("NUMBER(1)");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<string>("DisplayName")
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<bool>("IsLatest")
|
||||
.HasColumnType("NUMBER(1)");
|
||||
|
||||
b.Property<bool>("IsPublished")
|
||||
.HasColumnType("NUMBER(1)");
|
||||
|
||||
b.Property<bool>("IsSingleton")
|
||||
.HasColumnType("NUMBER(1)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<int>("PersistenceBehavior")
|
||||
.HasColumnType("NUMBER(10)");
|
||||
|
||||
b.Property<string>("Tag")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("TenantId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
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("Name")
|
||||
.HasDatabaseName("IX_WorkflowDefinition_Name");
|
||||
|
||||
b.HasIndex("Tag")
|
||||
.HasDatabaseName("IX_WorkflowDefinition_Tag");
|
||||
|
||||
b.HasIndex("TenantId")
|
||||
.HasDatabaseName("IX_WorkflowDefinition_TenantId");
|
||||
|
||||
b.HasIndex("Version")
|
||||
.HasDatabaseName("IX_WorkflowDefinition_Version");
|
||||
|
||||
b.HasIndex("DefinitionId", "Version")
|
||||
.IsUnique()
|
||||
.HasDatabaseName("IX_WorkflowDefinition_DefinitionId_VersionId");
|
||||
|
||||
b.ToTable("WorkflowDefinitions");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Elsa.Models.WorkflowExecutionLogRecord", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ActivityId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ActivityType")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("Data")
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<string>("EventName")
|
||||
.HasColumnType("NCLOB)");
|
||||
|
||||
b.Property<string>("Message")
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<string>("Source")
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<string>("TenantId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<DateTimeOffset>("Timestamp")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<string>("WorkflowInstanceId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ActivityId")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityId");
|
||||
|
||||
b.HasIndex("ActivityType")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType");
|
||||
|
||||
b.HasIndex("TenantId")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_TenantId");
|
||||
|
||||
b.HasIndex("Timestamp")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_Timestamp");
|
||||
|
||||
b.HasIndex("WorkflowInstanceId")
|
||||
.HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowInstanceId");
|
||||
|
||||
b.ToTable("WorkflowExecutionLogRecords");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Elsa.Models.WorkflowInstance", b =>
|
||||
{
|
||||
b.Property<string>("Id")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<DateTimeOffset?>("CancelledAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<string>("ContextId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("ContextType")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("CorrelationId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<DateTimeOffset>("CreatedAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<string>("Data")
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<string>("DefinitionId")
|
||||
.IsRequired()
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<DateTimeOffset?>("FaultedAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<DateTimeOffset?>("FinishedAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<string>("LastExecutedActivityId")
|
||||
.HasColumnType("NCLOB");
|
||||
|
||||
b.Property<DateTimeOffset?>("LastExecutedAt")
|
||||
.HasColumnType("TIMESTAMP(7) WITH TIME ZONE");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<string>("TenantId")
|
||||
.HasColumnType("NVARCHAR2(450)");
|
||||
|
||||
b.Property<int>("Version")
|
||||
.HasColumnType("NUMBER(10)");
|
||||
|
||||
b.Property<int>("WorkflowStatus")
|
||||
.HasColumnType("NUMBER(10)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ContextId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_ContextId");
|
||||
|
||||
b.HasIndex("ContextType")
|
||||
.HasDatabaseName("IX_WorkflowInstance_ContextType");
|
||||
|
||||
b.HasIndex("CorrelationId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_CorrelationId");
|
||||
|
||||
b.HasIndex("CreatedAt")
|
||||
.HasDatabaseName("IX_WorkflowInstance_CreatedAt");
|
||||
|
||||
b.HasIndex("DefinitionId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_DefinitionId");
|
||||
|
||||
b.HasIndex("FaultedAt")
|
||||
.HasDatabaseName("IX_WorkflowInstance_FaultedAt");
|
||||
|
||||
b.HasIndex("FinishedAt")
|
||||
.HasDatabaseName("IX_WorkflowInstance_FinishedAt");
|
||||
|
||||
b.HasIndex("LastExecutedAt")
|
||||
.HasDatabaseName("IX_WorkflowInstance_LastExecutedAt");
|
||||
|
||||
b.HasIndex("Name")
|
||||
.HasDatabaseName("IX_WorkflowInstance_Name");
|
||||
|
||||
b.HasIndex("TenantId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_TenantId");
|
||||
|
||||
b.HasIndex("WorkflowStatus")
|
||||
.HasDatabaseName("IX_WorkflowInstance_WorkflowStatus");
|
||||
|
||||
b.HasIndex("WorkflowStatus", "DefinitionId")
|
||||
.HasDatabaseName("IX_WorkflowInstance_WorkflowStatus_DefinitionId");
|
||||
|
||||
b.HasIndex("WorkflowStatus", "DefinitionId", "Version")
|
||||
.HasDatabaseName("IX_WorkflowInstance_WorkflowStatus_DefinitionId_Version");
|
||||
|
||||
b.ToTable("WorkflowInstances");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
using Elsa.Persistence.EntityFramework.Core;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Design;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Elsa.Persistence.EntityFramework.Oracle
|
||||
{
|
||||
public class OracleElsaContextFactory: IDesignTimeDbContextFactory<ElsaContext>
|
||||
{
|
||||
public ElsaContext CreateDbContext(string[] args)
|
||||
{
|
||||
var builder = new DbContextOptionsBuilder<ElsaContext>();
|
||||
var connectionString = args.Any() ? args[0] : "Server=127.0.0.1;Port=5432;Database=elsa;User Id=oracle;Password=password;";
|
||||
|
||||
builder.UseOracle(
|
||||
connectionString,
|
||||
db => db.MigrationsAssembly(typeof(OracleElsaContextFactory).Assembly.GetName().Name)
|
||||
.MigrationsHistoryTable(ElsaContext.MigrationsHistoryTable, ElsaContext.ElsaSchema));
|
||||
|
||||
return new ElsaContext(builder.Options);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
### Entity Framework Core Commands
|
||||
|
||||
**Generate Migrations**
|
||||
|
||||
```
|
||||
dotnet ef migrations add Initial -- "{connection string}"
|
||||
|
||||
```
|
||||
|
||||
etc..
|
||||
|
||||
**Apply Migrations**
|
||||
|
||||
`dotnet ef database update -- "{connection string}"`
|
||||
Loading…
Reference in a new issue