diff --git a/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/20251204150235_V3_6.Designer.cs b/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/20251204150235_V3_6.Designer.cs index 296d154d1d..50e470af86 100644 --- a/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/20251204150235_V3_6.Designer.cs +++ b/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/20251204150235_V3_6.Designer.cs @@ -59,7 +59,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("varchar(255)"); + .HasColumnType("longtext"); b.Property("ActivityType") .IsRequired() @@ -120,9 +120,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -342,7 +339,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("varchar(255)"); + .HasColumnType("longtext"); b.Property("ActivityType") .IsRequired() @@ -404,9 +401,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/20251204150235_V3_6.cs b/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/20251204150235_V3_6.cs index 12286caeb9..cfb7e6f951 100644 --- a/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/20251204150235_V3_6.cs +++ b/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/20251204150235_V3_6.cs @@ -35,6 +35,50 @@ protected override void Up(MigrationBuilder migrationBuilder) table: "Triggers", columns: new[] { "WorkflowDefinitionId", "Hash", "ActivityId", "TenantId" }, unique: true); + + var schemaFilter = _schema.Schema != null ? $"'{_schema.Schema}'" : "DATABASE()"; + + migrationBuilder.Sql($@" + SET @exist := (SELECT COUNT(*) FROM information_schema.statistics + WHERE table_schema = {schemaFilter} AND table_name = 'WorkflowExecutionLogRecords' + AND index_name = 'IX_WorkflowExecutionLogRecord_ActivityNodeId'); + SET @sqlstmt := IF(@exist > 0, 'DROP INDEX `IX_WorkflowExecutionLogRecord_ActivityNodeId` ON `WorkflowExecutionLogRecords`', 'SELECT 1'); + PREPARE stmt FROM @sqlstmt; + EXECUTE stmt; + DEALLOCATE PREPARE stmt; + "); + + migrationBuilder.Sql($@" + SET @exist := (SELECT COUNT(*) FROM information_schema.statistics + WHERE table_schema = {schemaFilter} AND table_name = 'ActivityExecutionRecords' + AND index_name = 'IX_ActivityExecutionRecord_ActivityNodeId'); + SET @sqlstmt := IF(@exist > 0, 'DROP INDEX `IX_ActivityExecutionRecord_ActivityNodeId` ON `ActivityExecutionRecords`', 'SELECT 1'); + PREPARE stmt FROM @sqlstmt; + EXECUTE stmt; + DEALLOCATE PREPARE stmt; + "); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + type: "longtext", + nullable: false, + oldClrType: typeof(string), + oldType: "varchar(255)") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + type: "longtext", + nullable: false, + oldClrType: typeof(string), + oldType: "varchar(255)") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); } /// @@ -55,6 +99,40 @@ protected override void Down(MigrationBuilder migrationBuilder) oldType: "varchar(255)") .Annotation("MySql:CharSet", "utf8mb4") .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + type: "varchar(255)", + nullable: false, + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + type: "varchar(255)", + nullable: false, + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateIndex( + name: "IX_WorkflowExecutionLogRecord_ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + column: "ActivityNodeId"); + + migrationBuilder.CreateIndex( + name: "IX_ActivityExecutionRecord_ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + column: "ActivityNodeId"); } } } diff --git a/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs b/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs index f7add71af7..b275ed0f24 100644 --- a/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs +++ b/src/modules/Elsa.Persistence.EFCore.MySql/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs @@ -56,7 +56,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("varchar(255)"); + .HasColumnType("longtext"); b.Property("ActivityType") .IsRequired() @@ -117,9 +117,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -339,7 +336,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("varchar(255)"); + .HasColumnType("longtext"); b.Property("ActivityType") .IsRequired() @@ -401,9 +398,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/20251204150355_V3_6.Designer.cs b/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/20251204150355_V3_6.Designer.cs index 2397aab877..51d7900cd4 100644 --- a/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/20251204150355_V3_6.Designer.cs +++ b/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/20251204150355_V3_6.Designer.cs @@ -59,7 +59,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("NVARCHAR2(450)"); + .HasColumnType("NCLOB"); b.Property("ActivityType") .IsRequired() @@ -120,9 +120,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -343,7 +340,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("NVARCHAR2(450)"); + .HasColumnType("NCLOB"); b.Property("ActivityType") .IsRequired() @@ -405,9 +402,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/20251204150355_V3_6.cs b/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/20251204150355_V3_6.cs index d996768b38..beaec32bc5 100644 --- a/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/20251204150355_V3_6.cs +++ b/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/20251204150355_V3_6.cs @@ -25,6 +25,43 @@ protected override void Up(MigrationBuilder migrationBuilder) columns: new[] { "WorkflowDefinitionId", "Hash", "ActivityId", "TenantId" }, unique: true, filter: "\"Hash\" IS NOT NULL"); + + // ORA-01418: specified index does not exist + migrationBuilder.Sql(@" + BEGIN + EXECUTE IMMEDIATE 'DROP INDEX ""IX_WorkflowExecutionLogRecord_ActivityNodeId""'; + EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -1418 THEN RAISE; END IF; + END; + "); + + migrationBuilder.Sql(@" + BEGIN + EXECUTE IMMEDIATE 'DROP INDEX ""IX_ActivityExecutionRecord_ActivityNodeId""'; + EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -1418 THEN RAISE; END IF; + END; + "); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + type: "NCLOB", + nullable: false, + oldClrType: typeof(string), + oldType: "NVARCHAR2(450)"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + type: "NCLOB", + nullable: false, + oldClrType: typeof(string), + oldType: "NVARCHAR2(450)"); } /// @@ -34,6 +71,36 @@ protected override void Down(MigrationBuilder migrationBuilder) name: "IX_StoredTrigger_Unique_WorkflowDefinitionId_Hash_ActivityId_TenantId", schema: _schema.Schema, table: "Triggers"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + type: "NVARCHAR2(450)", + nullable: false, + oldClrType: typeof(string), + oldType: "NCLOB"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + type: "NVARCHAR2(450)", + nullable: false, + oldClrType: typeof(string), + oldType: "NCLOB"); + + migrationBuilder.CreateIndex( + name: "IX_WorkflowExecutionLogRecord_ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + column: "ActivityNodeId"); + + migrationBuilder.CreateIndex( + name: "IX_ActivityExecutionRecord_ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + column: "ActivityNodeId"); } } } diff --git a/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs b/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs index cdee3d63e3..f6232ca3e3 100644 --- a/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs +++ b/src/modules/Elsa.Persistence.EFCore.Oracle/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs @@ -56,7 +56,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("NVARCHAR2(450)"); + .HasColumnType("NCLOB"); b.Property("ActivityType") .IsRequired() @@ -117,9 +117,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -340,7 +337,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("NVARCHAR2(450)"); + .HasColumnType("NCLOB"); b.Property("ActivityType") .IsRequired() @@ -402,9 +399,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.Designer.cs b/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.Designer.cs index 9783fa2506..c0a1c2b9c8 100644 --- a/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.Designer.cs +++ b/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.Designer.cs @@ -120,9 +120,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -404,9 +401,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.cs b/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.cs index bce6fbd4aa..efb1be6107 100644 --- a/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.cs +++ b/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.cs @@ -24,6 +24,10 @@ protected override void Up(MigrationBuilder migrationBuilder) table: "Triggers", columns: new[] { "WorkflowDefinitionId", "Hash", "ActivityId", "TenantId" }, unique: true); + + var schemaPrefix = _schema.Schema != null ? $"\"{_schema.Schema}\"." : ""; + migrationBuilder.Sql($"DROP INDEX IF EXISTS {schemaPrefix}\"IX_WorkflowExecutionLogRecord_ActivityNodeId\""); + migrationBuilder.Sql($"DROP INDEX IF EXISTS {schemaPrefix}\"IX_ActivityExecutionRecord_ActivityNodeId\""); } /// @@ -33,6 +37,18 @@ protected override void Down(MigrationBuilder migrationBuilder) name: "IX_StoredTrigger_Unique_WorkflowDefinitionId_Hash_ActivityId_TenantId", schema: _schema.Schema, table: "Triggers"); + + migrationBuilder.CreateIndex( + name: "IX_WorkflowExecutionLogRecord_ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + column: "ActivityNodeId"); + + migrationBuilder.CreateIndex( + name: "IX_ActivityExecutionRecord_ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + column: "ActivityNodeId"); } } } diff --git a/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs b/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs index 6b6665f499..0a645b7c34 100644 --- a/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs +++ b/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs @@ -117,9 +117,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -401,9 +398,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/20251204150326_V3_6.Designer.cs b/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/20251204150326_V3_6.Designer.cs index 49bb3921ab..7f4d842b9d 100644 --- a/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/20251204150326_V3_6.Designer.cs +++ b/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/20251204150326_V3_6.Designer.cs @@ -59,7 +59,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("nvarchar(450)"); + .HasColumnType("nvarchar(max)"); b.Property("ActivityType") .IsRequired() @@ -120,9 +120,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -343,7 +340,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("nvarchar(450)"); + .HasColumnType("nvarchar(max)"); b.Property("ActivityType") .IsRequired() @@ -405,9 +402,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/20251204150326_V3_6.cs b/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/20251204150326_V3_6.cs index e1581cfc9d..58b08adb32 100644 --- a/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/20251204150326_V3_6.cs +++ b/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/20251204150326_V3_6.cs @@ -44,6 +44,42 @@ ON [{_schema.Schema}].[Triggers] columns: new[] { "WorkflowDefinitionId", "Hash", "ActivityId", "TenantId" }, unique: true, filter: "[Hash] IS NOT NULL"); + + migrationBuilder.Sql($@" + IF EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkflowExecutionLogRecord_ActivityNodeId' + AND object_id = OBJECT_ID('{_schema.Schema}.WorkflowExecutionLogRecords')) + BEGIN + DROP INDEX [IX_WorkflowExecutionLogRecord_ActivityNodeId] + ON [{_schema.Schema}].[WorkflowExecutionLogRecords] + END + "); + + migrationBuilder.Sql($@" + IF EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_ActivityExecutionRecord_ActivityNodeId' + AND object_id = OBJECT_ID('{_schema.Schema}.ActivityExecutionRecords')) + BEGIN + DROP INDEX [IX_ActivityExecutionRecord_ActivityNodeId] + ON [{_schema.Schema}].[ActivityExecutionRecords] + END + "); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + type: "nvarchar(max)", + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(450)"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + type: "nvarchar(max)", + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(450)"); } /// @@ -62,6 +98,36 @@ protected override void Down(MigrationBuilder migrationBuilder) nullable: false, oldClrType: typeof(string), oldType: "nvarchar(450)"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + type: "nvarchar(450)", + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + + migrationBuilder.AlterColumn( + name: "ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + type: "nvarchar(450)", + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(max)"); + + migrationBuilder.CreateIndex( + name: "IX_WorkflowExecutionLogRecord_ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + column: "ActivityNodeId"); + + migrationBuilder.CreateIndex( + name: "IX_ActivityExecutionRecord_ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + column: "ActivityNodeId"); } } } diff --git a/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs b/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs index b821c873fb..1330b178ed 100644 --- a/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs +++ b/src/modules/Elsa.Persistence.EFCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs @@ -56,7 +56,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("nvarchar(450)"); + .HasColumnType("nvarchar(max)"); b.Property("ActivityType") .IsRequired() @@ -117,9 +117,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -340,7 +337,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("ActivityNodeId") .IsRequired() - .HasColumnType("nvarchar(450)"); + .HasColumnType("nvarchar(max)"); b.Property("ActivityType") .IsRequired() @@ -402,9 +399,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/20251204150006_V3_6.Designer.cs b/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/20251204150006_V3_6.Designer.cs index da36ab4775..5c43ae2279 100644 --- a/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/20251204150006_V3_6.Designer.cs +++ b/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/20251204150006_V3_6.Designer.cs @@ -116,9 +116,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -400,9 +397,6 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/20251204150006_V3_6.cs b/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/20251204150006_V3_6.cs index d3246d656d..3d46f9498e 100644 --- a/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/20251204150006_V3_6.cs +++ b/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/20251204150006_V3_6.cs @@ -24,6 +24,9 @@ protected override void Up(MigrationBuilder migrationBuilder) table: "Triggers", columns: new[] { "WorkflowDefinitionId", "Hash", "ActivityId", "TenantId" }, unique: true); + + migrationBuilder.Sql("DROP INDEX IF EXISTS \"IX_WorkflowExecutionLogRecord_ActivityNodeId\""); + migrationBuilder.Sql("DROP INDEX IF EXISTS \"IX_ActivityExecutionRecord_ActivityNodeId\""); } /// @@ -33,6 +36,18 @@ protected override void Down(MigrationBuilder migrationBuilder) name: "IX_StoredTrigger_Unique_WorkflowDefinitionId_Hash_ActivityId_TenantId", schema: _schema.Schema, table: "Triggers"); + + migrationBuilder.CreateIndex( + name: "IX_WorkflowExecutionLogRecord_ActivityNodeId", + schema: _schema.Schema, + table: "WorkflowExecutionLogRecords", + column: "ActivityNodeId"); + + migrationBuilder.CreateIndex( + name: "IX_ActivityExecutionRecord_ActivityNodeId", + schema: _schema.Schema, + table: "ActivityExecutionRecords", + column: "ActivityNodeId"); } } } diff --git a/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs b/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs index 74fbd62105..f4cf27c720 100644 --- a/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs +++ b/src/modules/Elsa.Persistence.EFCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs @@ -113,9 +113,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_ActivityExecutionRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType"); @@ -397,9 +394,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("ActivityName") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName"); - b.HasIndex("ActivityNodeId") - .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityNodeId"); - b.HasIndex("ActivityType") .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType"); diff --git a/src/modules/Elsa.Persistence.EFCore/Modules/Runtime/Configurations.cs b/src/modules/Elsa.Persistence.EFCore/Modules/Runtime/Configurations.cs index 230ed4f0bd..761f9c67b5 100644 --- a/src/modules/Elsa.Persistence.EFCore/Modules/Runtime/Configurations.cs +++ b/src/modules/Elsa.Persistence.EFCore/Modules/Runtime/Configurations.cs @@ -36,7 +36,6 @@ public void Configure(EntityTypeBuilder builder) builder.Property(x => x.Status).HasConversion(); builder.HasIndex(x => x.WorkflowInstanceId).HasDatabaseName($"IX_{nameof(ActivityExecutionRecord)}_{nameof(ActivityExecutionRecord.WorkflowInstanceId)}"); builder.HasIndex(x => x.ActivityId).HasDatabaseName($"IX_{nameof(ActivityExecutionRecord)}_{nameof(ActivityExecutionRecord.ActivityId)}"); - builder.HasIndex(x => x.ActivityNodeId).HasDatabaseName($"IX_{nameof(ActivityExecutionRecord)}_{nameof(ActivityExecutionRecord.ActivityNodeId)}"); builder.HasIndex(x => x.ActivityType).HasDatabaseName($"IX_{nameof(ActivityExecutionRecord)}_{nameof(ActivityExecutionRecord.ActivityType)}"); builder.HasIndex(x => x.ActivityTypeVersion).HasDatabaseName($"IX_{nameof(ActivityExecutionRecord)}_{nameof(ActivityExecutionRecord.ActivityTypeVersion)}"); builder.HasIndex(x => new @@ -154,7 +153,6 @@ public void Configure(EntityTypeBuilder builder) builder.HasIndex(x => x.ActivityInstanceId).HasDatabaseName($"IX_{nameof(WorkflowExecutionLogRecord)}_{nameof(WorkflowExecutionLogRecord.ActivityInstanceId)}"); builder.HasIndex(x => x.ParentActivityInstanceId).HasDatabaseName($"IX_{nameof(WorkflowExecutionLogRecord)}_{nameof(WorkflowExecutionLogRecord.ParentActivityInstanceId)}"); builder.HasIndex(x => x.ActivityId).HasDatabaseName($"IX_{nameof(WorkflowExecutionLogRecord)}_{nameof(WorkflowExecutionLogRecord.ActivityId)}"); - builder.HasIndex(x => x.ActivityNodeId).HasDatabaseName($"IX_{nameof(WorkflowExecutionLogRecord)}_{nameof(WorkflowExecutionLogRecord.ActivityNodeId)}"); builder.HasIndex(x => x.ActivityType).HasDatabaseName($"IX_{nameof(WorkflowExecutionLogRecord)}_{nameof(WorkflowExecutionLogRecord.ActivityType)}"); builder.HasIndex(x => x.ActivityTypeVersion).HasDatabaseName($"IX_{nameof(WorkflowExecutionLogRecord)}_{nameof(WorkflowExecutionLogRecord.ActivityTypeVersion)}"); builder.HasIndex(x => new