diff --git a/src/providers/WorkflowCore.Persistence.EntityFramework/Models/PersistedExecutionPointer.cs b/src/providers/WorkflowCore.Persistence.EntityFramework/Models/PersistedExecutionPointer.cs
index c7b5b48eb..2f2a6473e 100644
--- a/src/providers/WorkflowCore.Persistence.EntityFramework/Models/PersistedExecutionPointer.cs
+++ b/src/providers/WorkflowCore.Persistence.EntityFramework/Models/PersistedExecutionPointer.cs
@@ -32,10 +32,10 @@ public class PersistedExecutionPointer
public DateTime? EndTime { get; set; }
- [MaxLength(100)]
+ [MaxLength(200)]
public string EventName { get; set; }
- [MaxLength(100)]
+ [MaxLength(200)]
public string EventKey { get; set; }
public bool EventPublished { get; set; }
diff --git a/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/20210907073438_Align_EventKey_Length.Designer.cs b/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/20210907073438_Align_EventKey_Length.Designer.cs
new file mode 100644
index 000000000..b8a75c0d1
--- /dev/null
+++ b/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/20210907073438_Align_EventKey_Length.Designer.cs
@@ -0,0 +1,338 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using WorkflowCore.Persistence.PostgreSQL;
+
+namespace WorkflowCore.Persistence.PostgreSQL.Migrations
+{
+ [DbContext(typeof(PostgresContext))]
+ [Migration("20210907073438_Align_EventKey_Length")]
+ partial class Align_EventKey_Length
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .UseIdentityByDefaultColumns()
+ .HasAnnotation("Relational:MaxIdentifierLength", 63)
+ .HasAnnotation("ProductVersion", "5.0.1");
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedEvent", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityByDefaultColumn();
+
+ b.Property("EventData")
+ .HasColumnType("text");
+
+ b.Property("EventId")
+ .HasColumnType("uuid");
+
+ b.Property("EventKey")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("EventName")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("EventTime")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("IsProcessed")
+ .HasColumnType("boolean");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("EventId")
+ .IsUnique();
+
+ b.HasIndex("EventTime");
+
+ b.HasIndex("IsProcessed");
+
+ b.HasIndex("EventName", "EventKey");
+
+ b.ToTable("Event", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionError", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityByDefaultColumn();
+
+ b.Property("ErrorTime")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("ExecutionPointerId")
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("Message")
+ .HasColumnType("text");
+
+ b.Property("WorkflowId")
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.HasKey("PersistenceId");
+
+ b.ToTable("ExecutionError", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityByDefaultColumn();
+
+ b.Property("Active")
+ .HasColumnType("boolean");
+
+ b.Property("Children")
+ .HasColumnType("text");
+
+ b.Property("ContextItem")
+ .HasColumnType("text");
+
+ b.Property("EndTime")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("EventData")
+ .HasColumnType("text");
+
+ b.Property("EventKey")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("EventName")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("EventPublished")
+ .HasColumnType("boolean");
+
+ b.Property("Id")
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("Outcome")
+ .HasColumnType("text");
+
+ b.Property("PersistenceData")
+ .HasColumnType("text");
+
+ b.Property("PredecessorId")
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("RetryCount")
+ .HasColumnType("integer");
+
+ b.Property("Scope")
+ .HasColumnType("text");
+
+ b.Property("SleepUntil")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("StartTime")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("Status")
+ .HasColumnType("integer");
+
+ b.Property("StepId")
+ .HasColumnType("integer");
+
+ b.Property("StepName")
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("WorkflowId")
+ .HasColumnType("bigint");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("WorkflowId");
+
+ b.ToTable("ExecutionPointer", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExtensionAttribute", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityByDefaultColumn();
+
+ b.Property("AttributeKey")
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("AttributeValue")
+ .HasColumnType("text");
+
+ b.Property("ExecutionPointerId")
+ .HasColumnType("bigint");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("ExecutionPointerId");
+
+ b.ToTable("ExtensionAttribute", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedSubscription", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityByDefaultColumn();
+
+ b.Property("EventKey")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("EventName")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("ExecutionPointerId")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("ExternalToken")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("ExternalTokenExpiry")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("ExternalWorkerId")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("StepId")
+ .HasColumnType("integer");
+
+ b.Property("SubscribeAsOf")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("SubscriptionData")
+ .HasColumnType("text");
+
+ b.Property("SubscriptionId")
+ .HasMaxLength(200)
+ .HasColumnType("uuid");
+
+ b.Property("WorkflowId")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("EventKey");
+
+ b.HasIndex("EventName");
+
+ b.HasIndex("SubscriptionId")
+ .IsUnique();
+
+ b.ToTable("Subscription", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedWorkflow", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityByDefaultColumn();
+
+ b.Property("CompleteTime")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("CreateTime")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("Data")
+ .HasColumnType("text");
+
+ b.Property("Description")
+ .HasMaxLength(500)
+ .HasColumnType("character varying(500)");
+
+ b.Property("InstanceId")
+ .HasMaxLength(200)
+ .HasColumnType("uuid");
+
+ b.Property("NextExecution")
+ .HasColumnType("bigint");
+
+ b.Property("Reference")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("Status")
+ .HasColumnType("integer");
+
+ b.Property("Version")
+ .HasColumnType("integer");
+
+ b.Property("WorkflowDefinitionId")
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.HasIndex("NextExecution");
+
+ b.ToTable("Workflow", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
+ {
+ b.HasOne("WorkflowCore.Persistence.EntityFramework.Models.PersistedWorkflow", "Workflow")
+ .WithMany("ExecutionPointers")
+ .HasForeignKey("WorkflowId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Workflow");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExtensionAttribute", b =>
+ {
+ b.HasOne("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", "ExecutionPointer")
+ .WithMany("ExtensionAttributes")
+ .HasForeignKey("ExecutionPointerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ExecutionPointer");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
+ {
+ b.Navigation("ExtensionAttributes");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedWorkflow", b =>
+ {
+ b.Navigation("ExecutionPointers");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/20210907073438_Align_EventKey_Length.cs b/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/20210907073438_Align_EventKey_Length.cs
new file mode 100644
index 000000000..51eaa186a
--- /dev/null
+++ b/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/20210907073438_Align_EventKey_Length.cs
@@ -0,0 +1,61 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace WorkflowCore.Persistence.PostgreSQL.Migrations
+{
+ public partial class Align_EventKey_Length : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "EventName",
+ schema: "wfc",
+ table: "ExecutionPointer",
+ type: "character varying(200)",
+ maxLength: 200,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "character varying(100)",
+ oldMaxLength: 100,
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "EventKey",
+ schema: "wfc",
+ table: "ExecutionPointer",
+ type: "character varying(200)",
+ maxLength: 200,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "character varying(100)",
+ oldMaxLength: 100,
+ oldNullable: true);
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "EventName",
+ schema: "wfc",
+ table: "ExecutionPointer",
+ type: "character varying(100)",
+ maxLength: 100,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "character varying(200)",
+ oldMaxLength: 200,
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "EventKey",
+ schema: "wfc",
+ table: "ExecutionPointer",
+ type: "character varying(100)",
+ maxLength: 100,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "character varying(200)",
+ oldMaxLength: 200,
+ oldNullable: true);
+ }
+ }
+}
diff --git a/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/PostgresPersistenceProviderModelSnapshot.cs b/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/PostgresPersistenceProviderModelSnapshot.cs
index 6def22497..14bae29e1 100644
--- a/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/PostgresPersistenceProviderModelSnapshot.cs
+++ b/src/providers/WorkflowCore.Persistence.PostgreSQL/Migrations/PostgresPersistenceProviderModelSnapshot.cs
@@ -2,7 +2,9 @@
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using WorkflowCore.Persistence.PostgreSQL;
namespace WorkflowCore.Persistence.PostgreSQL.Migrations
{
@@ -13,16 +15,16 @@ protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
- .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn)
- .HasAnnotation("ProductVersion", "3.1.0")
- .HasAnnotation("Relational:MaxIdentifierLength", 63);
+ .UseIdentityByDefaultColumns()
+ .HasAnnotation("Relational:MaxIdentifierLength", 63)
+ .HasAnnotation("ProductVersion", "5.0.1");
modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedEvent", b =>
{
b.Property("PersistenceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
- .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+ .UseIdentityByDefaultColumn();
b.Property("EventData")
.HasColumnType("text");
@@ -31,12 +33,12 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("uuid");
b.Property("EventKey")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("EventName")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("EventTime")
.HasColumnType("timestamp without time zone");
@@ -55,7 +57,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.HasIndex("EventName", "EventKey");
- b.ToTable("Event","wfc");
+ b.ToTable("Event", "wfc");
});
modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionError", b =>
@@ -63,25 +65,25 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.Property("PersistenceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
- .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+ .UseIdentityByDefaultColumn();
b.Property("ErrorTime")
.HasColumnType("timestamp without time zone");
b.Property("ExecutionPointerId")
- .HasColumnType("character varying(100)")
- .HasMaxLength(100);
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
b.Property("Message")
.HasColumnType("text");
b.Property("WorkflowId")
- .HasColumnType("character varying(100)")
- .HasMaxLength(100);
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
b.HasKey("PersistenceId");
- b.ToTable("ExecutionError","wfc");
+ b.ToTable("ExecutionError", "wfc");
});
modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
@@ -89,7 +91,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.Property("PersistenceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
- .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+ .UseIdentityByDefaultColumn();
b.Property("Active")
.HasColumnType("boolean");
@@ -107,19 +109,19 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("text");
b.Property("EventKey")
- .HasColumnType("character varying(100)")
- .HasMaxLength(100);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("EventName")
- .HasColumnType("character varying(100)")
- .HasMaxLength(100);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("EventPublished")
.HasColumnType("boolean");
b.Property("Id")
- .HasColumnType("character varying(50)")
- .HasMaxLength(50);
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
b.Property("Outcome")
.HasColumnType("text");
@@ -128,8 +130,8 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("text");
b.Property("PredecessorId")
- .HasColumnType("character varying(100)")
- .HasMaxLength(100);
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
b.Property("RetryCount")
.HasColumnType("integer");
@@ -150,8 +152,8 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("integer");
b.Property("StepName")
- .HasColumnType("character varying(100)")
- .HasMaxLength(100);
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
b.Property("WorkflowId")
.HasColumnType("bigint");
@@ -160,7 +162,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.HasIndex("WorkflowId");
- b.ToTable("ExecutionPointer","wfc");
+ b.ToTable("ExecutionPointer", "wfc");
});
modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExtensionAttribute", b =>
@@ -168,11 +170,11 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.Property("PersistenceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
- .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+ .UseIdentityByDefaultColumn();
b.Property("AttributeKey")
- .HasColumnType("character varying(100)")
- .HasMaxLength(100);
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
b.Property("AttributeValue")
.HasColumnType("text");
@@ -184,7 +186,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.HasIndex("ExecutionPointerId");
- b.ToTable("ExtensionAttribute","wfc");
+ b.ToTable("ExtensionAttribute", "wfc");
});
modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedSubscription", b =>
@@ -192,30 +194,30 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.Property("PersistenceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
- .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+ .UseIdentityByDefaultColumn();
b.Property("EventKey")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("EventName")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("ExecutionPointerId")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("ExternalToken")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("ExternalTokenExpiry")
.HasColumnType("timestamp without time zone");
b.Property("ExternalWorkerId")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("StepId")
.HasColumnType("integer");
@@ -227,12 +229,12 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("text");
b.Property("SubscriptionId")
- .HasColumnType("uuid")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("uuid");
b.Property("WorkflowId")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.HasKey("PersistenceId");
@@ -243,7 +245,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.HasIndex("SubscriptionId")
.IsUnique();
- b.ToTable("Subscription","wfc");
+ b.ToTable("Subscription", "wfc");
});
modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedWorkflow", b =>
@@ -251,7 +253,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.Property("PersistenceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
- .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+ .UseIdentityByDefaultColumn();
b.Property("CompleteTime")
.HasColumnType("timestamp without time zone");
@@ -263,19 +265,19 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("text");
b.Property("Description")
- .HasColumnType("character varying(500)")
- .HasMaxLength(500);
+ .HasMaxLength(500)
+ .HasColumnType("character varying(500)");
b.Property("InstanceId")
- .HasColumnType("uuid")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("uuid");
b.Property("NextExecution")
.HasColumnType("bigint");
b.Property("Reference")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.Property("Status")
.HasColumnType("integer");
@@ -284,8 +286,8 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("integer");
b.Property("WorkflowDefinitionId")
- .HasColumnType("character varying(200)")
- .HasMaxLength(200);
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
b.HasKey("PersistenceId");
@@ -294,7 +296,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.HasIndex("NextExecution");
- b.ToTable("Workflow","wfc");
+ b.ToTable("Workflow", "wfc");
});
modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
@@ -304,6 +306,8 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasForeignKey("WorkflowId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
+
+ b.Navigation("Workflow");
});
modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExtensionAttribute", b =>
@@ -313,6 +317,18 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasForeignKey("ExecutionPointerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
+
+ b.Navigation("ExecutionPointer");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
+ {
+ b.Navigation("ExtensionAttributes");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedWorkflow", b =>
+ {
+ b.Navigation("ExecutionPointers");
});
#pragma warning restore 612, 618
}
diff --git a/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/20210904123146_Align_EventKey_Length.Designer.cs b/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/20210904123146_Align_EventKey_Length.Designer.cs
new file mode 100644
index 000000000..fd033c502
--- /dev/null
+++ b/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/20210904123146_Align_EventKey_Length.Designer.cs
@@ -0,0 +1,338 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using WorkflowCore.Persistence.SqlServer;
+
+namespace WorkflowCore.Persistence.SqlServer.Migrations
+{
+ [DbContext(typeof(SqlServerContext))]
+ [Migration("20210904123146_Align_EventKey_Length")]
+ partial class Align_EventKey_Length
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .UseIdentityColumns()
+ .HasAnnotation("Relational:MaxIdentifierLength", 128)
+ .HasAnnotation("ProductVersion", "5.0.1");
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedEvent", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityColumn();
+
+ b.Property("EventData")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("EventId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("EventKey")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("EventName")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("EventTime")
+ .HasColumnType("datetime2");
+
+ b.Property("IsProcessed")
+ .HasColumnType("bit");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("EventId")
+ .IsUnique();
+
+ b.HasIndex("EventTime");
+
+ b.HasIndex("IsProcessed");
+
+ b.HasIndex("EventName", "EventKey");
+
+ b.ToTable("Event", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionError", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityColumn();
+
+ b.Property("ErrorTime")
+ .HasColumnType("datetime2");
+
+ b.Property("ExecutionPointerId")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("Message")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WorkflowId")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.HasKey("PersistenceId");
+
+ b.ToTable("ExecutionError", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityColumn();
+
+ b.Property("Active")
+ .HasColumnType("bit");
+
+ b.Property("Children")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContextItem")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("EndTime")
+ .HasColumnType("datetime2");
+
+ b.Property("EventData")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("EventKey")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("EventName")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("EventPublished")
+ .HasColumnType("bit");
+
+ b.Property("Id")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Outcome")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PersistenceData")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PredecessorId")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("RetryCount")
+ .HasColumnType("int");
+
+ b.Property("Scope")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SleepUntil")
+ .HasColumnType("datetime2");
+
+ b.Property("StartTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("StepId")
+ .HasColumnType("int");
+
+ b.Property("StepName")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("WorkflowId")
+ .HasColumnType("bigint");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("WorkflowId");
+
+ b.ToTable("ExecutionPointer", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExtensionAttribute", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityColumn();
+
+ b.Property("AttributeKey")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("AttributeValue")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ExecutionPointerId")
+ .HasColumnType("bigint");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("ExecutionPointerId");
+
+ b.ToTable("ExtensionAttribute", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedSubscription", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityColumn();
+
+ b.Property("EventKey")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("EventName")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("ExecutionPointerId")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("ExternalToken")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("ExternalTokenExpiry")
+ .HasColumnType("datetime2");
+
+ b.Property("ExternalWorkerId")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("StepId")
+ .HasColumnType("int");
+
+ b.Property("SubscribeAsOf")
+ .HasColumnType("datetime2");
+
+ b.Property("SubscriptionData")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SubscriptionId")
+ .HasMaxLength(200)
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("WorkflowId")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("EventKey");
+
+ b.HasIndex("EventName");
+
+ b.HasIndex("SubscriptionId")
+ .IsUnique();
+
+ b.ToTable("Subscription", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedWorkflow", b =>
+ {
+ b.Property("PersistenceId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint")
+ .UseIdentityColumn();
+
+ b.Property("CompleteTime")
+ .HasColumnType("datetime2");
+
+ b.Property("CreateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Data")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Description")
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("InstanceId")
+ .HasMaxLength(200)
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("NextExecution")
+ .HasColumnType("bigint");
+
+ b.Property("Reference")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("Version")
+ .HasColumnType("int");
+
+ b.Property("WorkflowDefinitionId")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.HasKey("PersistenceId");
+
+ b.HasIndex("InstanceId")
+ .IsUnique();
+
+ b.HasIndex("NextExecution");
+
+ b.ToTable("Workflow", "wfc");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
+ {
+ b.HasOne("WorkflowCore.Persistence.EntityFramework.Models.PersistedWorkflow", "Workflow")
+ .WithMany("ExecutionPointers")
+ .HasForeignKey("WorkflowId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Workflow");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExtensionAttribute", b =>
+ {
+ b.HasOne("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", "ExecutionPointer")
+ .WithMany("ExtensionAttributes")
+ .HasForeignKey("ExecutionPointerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ExecutionPointer");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedExecutionPointer", b =>
+ {
+ b.Navigation("ExtensionAttributes");
+ });
+
+ modelBuilder.Entity("WorkflowCore.Persistence.EntityFramework.Models.PersistedWorkflow", b =>
+ {
+ b.Navigation("ExecutionPointers");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/20210904123146_Align_EventKey_Length.cs b/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/20210904123146_Align_EventKey_Length.cs
new file mode 100644
index 000000000..e0651b583
--- /dev/null
+++ b/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/20210904123146_Align_EventKey_Length.cs
@@ -0,0 +1,61 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace WorkflowCore.Persistence.SqlServer.Migrations
+{
+ public partial class Align_EventKey_Length : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "EventName",
+ schema: "wfc",
+ table: "ExecutionPointer",
+ type: "nvarchar(200)",
+ maxLength: 200,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(100)",
+ oldMaxLength: 100,
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "EventKey",
+ schema: "wfc",
+ table: "ExecutionPointer",
+ type: "nvarchar(200)",
+ maxLength: 200,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(100)",
+ oldMaxLength: 100,
+ oldNullable: true);
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "EventName",
+ schema: "wfc",
+ table: "ExecutionPointer",
+ type: "nvarchar(100)",
+ maxLength: 100,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(200)",
+ oldMaxLength: 200,
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "EventKey",
+ schema: "wfc",
+ table: "ExecutionPointer",
+ type: "nvarchar(100)",
+ maxLength: 100,
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "nvarchar(200)",
+ oldMaxLength: 200,
+ oldNullable: true);
+ }
+ }
+}
diff --git a/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/SqlServerPersistenceProviderModelSnapshot.cs b/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/SqlServerPersistenceProviderModelSnapshot.cs
index 2e32d838d..6593eac4d 100644
--- a/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/SqlServerPersistenceProviderModelSnapshot.cs
+++ b/src/providers/WorkflowCore.Persistence.SqlServer/Migrations/SqlServerPersistenceProviderModelSnapshot.cs
@@ -2,6 +2,9 @@
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using WorkflowCore.Persistence.SqlServer;
namespace WorkflowCore.Persistence.SqlServer.Migrations
{
@@ -106,12 +109,12 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.HasColumnType("nvarchar(max)");
b.Property("EventKey")
- .HasMaxLength(100)
- .HasColumnType("nvarchar(100)");
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
b.Property("EventName")
- .HasMaxLength(100)
- .HasColumnType("nvarchar(100)");
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
b.Property("EventPublished")
.HasColumnType("bit");
diff --git a/test/WorkflowCore.IntegrationTests/Scenarios/EventScenario.cs b/test/WorkflowCore.IntegrationTests/Scenarios/EventScenario.cs
index 6c5439b18..37cecdc68 100644
--- a/test/WorkflowCore.IntegrationTests/Scenarios/EventScenario.cs
+++ b/test/WorkflowCore.IntegrationTests/Scenarios/EventScenario.cs
@@ -39,7 +39,7 @@ public EventScenario()
[Fact]
public void Scenario()
{
- var eventKey = Guid.NewGuid().ToString();
+ var eventKey = Guid.NewGuid().ToString() + new string('.', 150);
var workflowId = StartWorkflow(new MyDataClass { StrValue1 = eventKey, StrValue2 = eventKey });
WaitForEventSubscription("MyEvent", eventKey, TimeSpan.FromSeconds(30));
Host.PublishEvent("MyEvent", eventKey, "Pass1");
diff --git a/test/WorkflowCore.Tests.SqlServer/DockerSetup.cs b/test/WorkflowCore.Tests.SqlServer/DockerSetup.cs
index 74aff9487..b9d15ddff 100644
--- a/test/WorkflowCore.Tests.SqlServer/DockerSetup.cs
+++ b/test/WorkflowCore.Tests.SqlServer/DockerSetup.cs
@@ -11,7 +11,7 @@ public class SqlDockerSetup : DockerSetup
public static string ConnectionString { get; set; }
public static string ScenarioConnectionString { get; set; }
- public override string ImageName => "microsoft/mssql-server-linux";
+ public override string ImageName => "mcr.microsoft.com/mssql/server";
public override int InternalPort => 1433;
public override TimeSpan TimeOut => TimeSpan.FromSeconds(120);