< Summary

Line coverage
0%
Covered lines: 0
Uncovered lines: 500
Coverable lines: 500
Total lines: 558
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
File 1: .ctor(...)100%210%
File 1: Up(...)0%620%
File 1: Down(...)100%210%
File 2: BuildTargetModel(...)100%210%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace Elsa.Persistence.EFCore.PostgreSql.Migrations.Runtime
 6{
 7    /// <inheritdoc />
 8    public partial class V3_6 : Migration
 9    {
 10        private readonly Elsa.Persistence.EFCore.IElsaDbContextSchema _schema;
 11
 12        /// <inheritdoc />
 013        public V3_6(Elsa.Persistence.EFCore.IElsaDbContextSchema schema)
 14        {
 015            _schema = schema;
 016        }
 17
 18        /// <inheritdoc />
 19        protected override void Up(MigrationBuilder migrationBuilder)
 20        {
 021            migrationBuilder.CreateIndex(
 022                name: "IX_StoredTrigger_Unique_WorkflowDefinitionId_Hash_ActivityId_TenantId",
 023                schema: _schema.Schema,
 024                table: "Triggers",
 025                columns: new[] { "WorkflowDefinitionId", "Hash", "ActivityId", "TenantId" },
 026                unique: true);
 27
 028            var schemaPrefix = _schema.Schema != null ? $"\"{_schema.Schema}\"." : "";
 029            migrationBuilder.Sql($"DROP INDEX IF EXISTS {schemaPrefix}\"IX_WorkflowExecutionLogRecord_ActivityNodeId\"")
 030            migrationBuilder.Sql($"DROP INDEX IF EXISTS {schemaPrefix}\"IX_ActivityExecutionRecord_ActivityNodeId\"");
 031        }
 32
 33        /// <inheritdoc />
 34        protected override void Down(MigrationBuilder migrationBuilder)
 35        {
 036            migrationBuilder.DropIndex(
 037                name: "IX_StoredTrigger_Unique_WorkflowDefinitionId_Hash_ActivityId_TenantId",
 038                schema: _schema.Schema,
 039                table: "Triggers");
 40
 041            migrationBuilder.CreateIndex(
 042                name: "IX_WorkflowExecutionLogRecord_ActivityNodeId",
 043                schema: _schema.Schema,
 044                table: "WorkflowExecutionLogRecords",
 045                column: "ActivityNodeId");
 46
 047            migrationBuilder.CreateIndex(
 048                name: "IX_ActivityExecutionRecord_ActivityNodeId",
 049                schema: _schema.Schema,
 050                table: "ActivityExecutionRecords",
 051                column: "ActivityNodeId");
 052        }
 53    }
 54}

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Persistence.EFCore.PostgreSql/Migrations/Runtime/20251204150341_V3_6.Designer.cs

#LineLine coverage
 1// <auto-generated />
 2using System;
 3using Elsa.Persistence.EFCore.Modules.Runtime;
 4using Microsoft.EntityFrameworkCore;
 5using Microsoft.EntityFrameworkCore.Infrastructure;
 6using Microsoft.EntityFrameworkCore.Migrations;
 7using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 8using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 9
 10#nullable disable
 11
 12namespace Elsa.Persistence.EFCore.PostgreSql.Migrations.Runtime
 13{
 14    [DbContext(typeof(RuntimeElsaDbContext))]
 15    [Migration("20251204150341_V3_6")]
 16    partial class V3_6
 17    {
 18        /// <inheritdoc />
 19        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 20        {
 21#pragma warning disable 612, 618
 022            modelBuilder
 023                .HasDefaultSchema("Elsa")
 024                .HasAnnotation("ProductVersion", "9.0.11")
 025                .HasAnnotation("Relational:MaxIdentifierLength", 63);
 26
 027            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 28
 029            modelBuilder.Entity("Elsa.KeyValues.Entities.SerializedKeyValuePair", b =>
 030                {
 031                    b.Property<string>("Id")
 032                        .HasColumnType("text");
 033
 034                    b.Property<string>("SerializedValue")
 035                        .IsRequired()
 036                        .HasColumnType("text");
 037
 038                    b.Property<string>("TenantId")
 039                        .HasColumnType("text");
 040
 041                    b.HasKey("Id");
 042
 043                    b.HasIndex(new[] { "TenantId" }, "IX_SerializedKeyValuePair_TenantId");
 044
 045                    b.ToTable("KeyValuePairs", "Elsa");
 046                });
 47
 048            modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.ActivityExecutionRecord", b =>
 049                {
 050                    b.Property<string>("Id")
 051                        .HasColumnType("text");
 052
 053                    b.Property<string>("ActivityId")
 054                        .IsRequired()
 055                        .HasColumnType("text");
 056
 057                    b.Property<string>("ActivityName")
 058                        .HasColumnType("text");
 059
 060                    b.Property<string>("ActivityNodeId")
 061                        .IsRequired()
 062                        .HasColumnType("text");
 063
 064                    b.Property<string>("ActivityType")
 065                        .IsRequired()
 066                        .HasColumnType("text");
 067
 068                    b.Property<int>("ActivityTypeVersion")
 069                        .HasColumnType("integer");
 070
 071                    b.Property<int>("AggregateFaultCount")
 072                        .HasColumnType("integer");
 073
 074                    b.Property<DateTimeOffset?>("CompletedAt")
 075                        .HasColumnType("timestamp with time zone");
 076
 077                    b.Property<bool>("HasBookmarks")
 078                        .HasColumnType("boolean");
 079
 080                    b.Property<string>("SerializedActivityState")
 081                        .HasColumnType("text");
 082
 083                    b.Property<string>("SerializedActivityStateCompressionAlgorithm")
 084                        .HasColumnType("text");
 085
 086                    b.Property<string>("SerializedException")
 087                        .HasColumnType("text");
 088
 089                    b.Property<string>("SerializedMetadata")
 090                        .HasColumnType("text");
 091
 092                    b.Property<string>("SerializedOutputs")
 093                        .HasColumnType("text");
 094
 095                    b.Property<string>("SerializedPayload")
 096                        .HasColumnType("text");
 097
 098                    b.Property<string>("SerializedProperties")
 099                        .HasColumnType("text");
 0100
 0101                    b.Property<DateTimeOffset>("StartedAt")
 0102                        .HasColumnType("timestamp with time zone");
 0103
 0104                    b.Property<string>("Status")
 0105                        .IsRequired()
 0106                        .HasColumnType("text");
 0107
 0108                    b.Property<string>("TenantId")
 0109                        .HasColumnType("text");
 0110
 0111                    b.Property<string>("WorkflowInstanceId")
 0112                        .IsRequired()
 0113                        .HasColumnType("text");
 0114
 0115                    b.HasKey("Id");
 0116
 0117                    b.HasIndex("ActivityId")
 0118                        .HasDatabaseName("IX_ActivityExecutionRecord_ActivityId");
 0119
 0120                    b.HasIndex("ActivityName")
 0121                        .HasDatabaseName("IX_ActivityExecutionRecord_ActivityName");
 0122
 0123                    b.HasIndex("ActivityType")
 0124                        .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType");
 0125
 0126                    b.HasIndex("ActivityTypeVersion")
 0127                        .HasDatabaseName("IX_ActivityExecutionRecord_ActivityTypeVersion");
 0128
 0129                    b.HasIndex("CompletedAt")
 0130                        .HasDatabaseName("IX_ActivityExecutionRecord_CompletedAt");
 0131
 0132                    b.HasIndex("HasBookmarks")
 0133                        .HasDatabaseName("IX_ActivityExecutionRecord_HasBookmarks");
 0134
 0135                    b.HasIndex("StartedAt")
 0136                        .HasDatabaseName("IX_ActivityExecutionRecord_StartedAt");
 0137
 0138                    b.HasIndex("Status")
 0139                        .HasDatabaseName("IX_ActivityExecutionRecord_Status");
 0140
 0141                    b.HasIndex("TenantId")
 0142                        .HasDatabaseName("IX_ActivityExecutionRecord_TenantId");
 0143
 0144                    b.HasIndex("WorkflowInstanceId")
 0145                        .HasDatabaseName("IX_ActivityExecutionRecord_WorkflowInstanceId");
 0146
 0147                    b.HasIndex("ActivityType", "ActivityTypeVersion")
 0148                        .HasDatabaseName("IX_ActivityExecutionRecord_ActivityType_ActivityTypeVersion");
 0149
 0150                    b.ToTable("ActivityExecutionRecords", "Elsa");
 0151                });
 152
 0153            modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.BookmarkQueueItem", b =>
 0154                {
 0155                    b.Property<string>("Id")
 0156                        .HasColumnType("text");
 0157
 0158                    b.Property<string>("ActivityInstanceId")
 0159                        .HasColumnType("text");
 0160
 0161                    b.Property<string>("ActivityTypeName")
 0162                        .HasColumnType("text");
 0163
 0164                    b.Property<string>("BookmarkId")
 0165                        .HasColumnType("text");
 0166
 0167                    b.Property<string>("CorrelationId")
 0168                        .HasColumnType("text");
 0169
 0170                    b.Property<DateTimeOffset>("CreatedAt")
 0171                        .HasColumnType("timestamp with time zone");
 0172
 0173                    b.Property<string>("SerializedOptions")
 0174                        .HasColumnType("text");
 0175
 0176                    b.Property<string>("StimulusHash")
 0177                        .HasColumnType("text");
 0178
 0179                    b.Property<string>("TenantId")
 0180                        .HasColumnType("text");
 0181
 0182                    b.Property<string>("WorkflowInstanceId")
 0183                        .HasColumnType("text");
 0184
 0185                    b.HasKey("Id");
 0186
 0187                    b.HasIndex(new[] { "ActivityInstanceId" }, "IX_BookmarkQueueItem_ActivityInstanceId");
 0188
 0189                    b.HasIndex(new[] { "ActivityTypeName" }, "IX_BookmarkQueueItem_ActivityTypeName");
 0190
 0191                    b.HasIndex(new[] { "BookmarkId" }, "IX_BookmarkQueueItem_BookmarkId");
 0192
 0193                    b.HasIndex(new[] { "CorrelationId" }, "IX_BookmarkQueueItem_CorrelationId");
 0194
 0195                    b.HasIndex(new[] { "CreatedAt" }, "IX_BookmarkQueueItem_CreatedAt");
 0196
 0197                    b.HasIndex(new[] { "StimulusHash" }, "IX_BookmarkQueueItem_StimulusHash");
 0198
 0199                    b.HasIndex(new[] { "TenantId" }, "IX_BookmarkQueueItem_TenantId");
 0200
 0201                    b.HasIndex(new[] { "WorkflowInstanceId" }, "IX_BookmarkQueueItem_WorkflowInstanceId");
 0202
 0203                    b.ToTable("BookmarkQueueItems", "Elsa");
 0204                });
 205
 0206            modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.StoredBookmark", b =>
 0207                {
 0208                    b.Property<string>("Id")
 0209                        .HasColumnType("text");
 0210
 0211                    b.Property<string>("ActivityInstanceId")
 0212                        .HasColumnType("text");
 0213
 0214                    b.Property<string>("ActivityTypeName")
 0215                        .IsRequired()
 0216                        .HasColumnType("text");
 0217
 0218                    b.Property<string>("CorrelationId")
 0219                        .HasColumnType("text");
 0220
 0221                    b.Property<DateTimeOffset>("CreatedAt")
 0222                        .HasColumnType("timestamp with time zone");
 0223
 0224                    b.Property<string>("Hash")
 0225                        .IsRequired()
 0226                        .HasColumnType("text");
 0227
 0228                    b.Property<string>("Name")
 0229                        .HasColumnType("text");
 0230
 0231                    b.Property<string>("SerializedMetadata")
 0232                        .HasColumnType("text");
 0233
 0234                    b.Property<string>("SerializedPayload")
 0235                        .HasColumnType("text");
 0236
 0237                    b.Property<string>("TenantId")
 0238                        .HasColumnType("text");
 0239
 0240                    b.Property<string>("WorkflowInstanceId")
 0241                        .IsRequired()
 0242                        .HasColumnType("text");
 0243
 0244                    b.HasKey("Id");
 0245
 0246                    b.HasIndex(new[] { "ActivityInstanceId" }, "IX_StoredBookmark_ActivityInstanceId");
 0247
 0248                    b.HasIndex(new[] { "ActivityTypeName" }, "IX_StoredBookmark_ActivityTypeName");
 0249
 0250                    b.HasIndex(new[] { "ActivityTypeName", "Hash" }, "IX_StoredBookmark_ActivityTypeName_Hash");
 0251
 0252                    b.HasIndex(new[] { "ActivityTypeName", "Hash", "WorkflowInstanceId" }, "IX_StoredBookmark_ActivityTy
 0253
 0254                    b.HasIndex(new[] { "CreatedAt" }, "IX_StoredBookmark_CreatedAt");
 0255
 0256                    b.HasIndex(new[] { "Hash" }, "IX_StoredBookmark_Hash");
 0257
 0258                    b.HasIndex(new[] { "Name" }, "IX_StoredBookmark_Name");
 0259
 0260                    b.HasIndex(new[] { "Name", "Hash" }, "IX_StoredBookmark_Name_Hash");
 0261
 0262                    b.HasIndex(new[] { "Name", "Hash", "WorkflowInstanceId" }, "IX_StoredBookmark_Name_Hash_WorkflowInst
 0263
 0264                    b.HasIndex(new[] { "TenantId" }, "IX_StoredBookmark_TenantId");
 0265
 0266                    b.HasIndex(new[] { "WorkflowInstanceId" }, "IX_StoredBookmark_WorkflowInstanceId");
 0267
 0268                    b.ToTable("Bookmarks", "Elsa");
 0269                });
 270
 0271            modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.StoredTrigger", b =>
 0272                {
 0273                    b.Property<string>("Id")
 0274                        .HasColumnType("text");
 0275
 0276                    b.Property<string>("ActivityId")
 0277                        .IsRequired()
 0278                        .HasColumnType("text");
 0279
 0280                    b.Property<string>("Hash")
 0281                        .HasColumnType("text");
 0282
 0283                    b.Property<string>("Name")
 0284                        .HasColumnType("text");
 0285
 0286                    b.Property<string>("SerializedPayload")
 0287                        .HasColumnType("text");
 0288
 0289                    b.Property<string>("TenantId")
 0290                        .HasColumnType("text");
 0291
 0292                    b.Property<string>("WorkflowDefinitionId")
 0293                        .IsRequired()
 0294                        .HasColumnType("text");
 0295
 0296                    b.Property<string>("WorkflowDefinitionVersionId")
 0297                        .IsRequired()
 0298                        .HasColumnType("text");
 0299
 0300                    b.HasKey("Id");
 0301
 0302                    b.HasIndex("Hash")
 0303                        .HasDatabaseName("IX_StoredTrigger_Hash");
 0304
 0305                    b.HasIndex("Name")
 0306                        .HasDatabaseName("IX_StoredTrigger_Name");
 0307
 0308                    b.HasIndex("TenantId")
 0309                        .HasDatabaseName("IX_StoredTrigger_TenantId");
 0310
 0311                    b.HasIndex("WorkflowDefinitionId")
 0312                        .HasDatabaseName("IX_StoredTrigger_WorkflowDefinitionId");
 0313
 0314                    b.HasIndex("WorkflowDefinitionVersionId")
 0315                        .HasDatabaseName("IX_StoredTrigger_WorkflowDefinitionVersionId");
 0316
 0317                    b.HasIndex("WorkflowDefinitionId", "Hash", "ActivityId")
 0318                        .IsUnique()
 0319                        .HasDatabaseName("IX_StoredTrigger_Unique_WorkflowDefinitionId_Hash_ActivityId");
 0320
 0321                    b.ToTable("Triggers", "Elsa");
 0322                });
 323
 0324            modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.WorkflowExecutionLogRecord", b =>
 0325                {
 0326                    b.Property<string>("Id")
 0327                        .HasColumnType("text");
 0328
 0329                    b.Property<string>("ActivityId")
 0330                        .IsRequired()
 0331                        .HasColumnType("text");
 0332
 0333                    b.Property<string>("ActivityInstanceId")
 0334                        .IsRequired()
 0335                        .HasColumnType("text");
 0336
 0337                    b.Property<string>("ActivityName")
 0338                        .HasColumnType("text");
 0339
 0340                    b.Property<string>("ActivityNodeId")
 0341                        .IsRequired()
 0342                        .HasColumnType("text");
 0343
 0344                    b.Property<string>("ActivityType")
 0345                        .IsRequired()
 0346                        .HasColumnType("text");
 0347
 0348                    b.Property<int>("ActivityTypeVersion")
 0349                        .HasColumnType("integer");
 0350
 0351                    b.Property<string>("EventName")
 0352                        .HasColumnType("text");
 0353
 0354                    b.Property<string>("Message")
 0355                        .HasColumnType("text");
 0356
 0357                    b.Property<string>("ParentActivityInstanceId")
 0358                        .HasColumnType("text");
 0359
 0360                    b.Property<long>("Sequence")
 0361                        .HasColumnType("bigint");
 0362
 0363                    b.Property<string>("SerializedActivityState")
 0364                        .HasColumnType("text");
 0365
 0366                    b.Property<string>("SerializedPayload")
 0367                        .HasColumnType("text");
 0368
 0369                    b.Property<string>("Source")
 0370                        .HasColumnType("text");
 0371
 0372                    b.Property<string>("TenantId")
 0373                        .HasColumnType("text");
 0374
 0375                    b.Property<DateTimeOffset>("Timestamp")
 0376                        .HasColumnType("timestamp with time zone");
 0377
 0378                    b.Property<string>("WorkflowDefinitionId")
 0379                        .IsRequired()
 0380                        .HasColumnType("text");
 0381
 0382                    b.Property<string>("WorkflowDefinitionVersionId")
 0383                        .IsRequired()
 0384                        .HasColumnType("text");
 0385
 0386                    b.Property<string>("WorkflowInstanceId")
 0387                        .IsRequired()
 0388                        .HasColumnType("text");
 0389
 0390                    b.Property<int>("WorkflowVersion")
 0391                        .HasColumnType("integer");
 0392
 0393                    b.HasKey("Id");
 0394
 0395                    b.HasIndex("ActivityId")
 0396                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityId");
 0397
 0398                    b.HasIndex("ActivityInstanceId")
 0399                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityInstanceId");
 0400
 0401                    b.HasIndex("ActivityName")
 0402                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityName");
 0403
 0404                    b.HasIndex("ActivityType")
 0405                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType");
 0406
 0407                    b.HasIndex("ActivityTypeVersion")
 0408                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityTypeVersion");
 0409
 0410                    b.HasIndex("EventName")
 0411                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_EventName");
 0412
 0413                    b.HasIndex("ParentActivityInstanceId")
 0414                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_ParentActivityInstanceId");
 0415
 0416                    b.HasIndex("Sequence")
 0417                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_Sequence");
 0418
 0419                    b.HasIndex("TenantId")
 0420                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_TenantId");
 0421
 0422                    b.HasIndex("Timestamp")
 0423                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_Timestamp");
 0424
 0425                    b.HasIndex("WorkflowDefinitionId")
 0426                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowDefinitionId");
 0427
 0428                    b.HasIndex("WorkflowDefinitionVersionId")
 0429                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowDefinitionVersionId");
 0430
 0431                    b.HasIndex("WorkflowInstanceId")
 0432                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowInstanceId");
 0433
 0434                    b.HasIndex("WorkflowVersion")
 0435                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_WorkflowVersion");
 0436
 0437                    b.HasIndex("ActivityType", "ActivityTypeVersion")
 0438                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_ActivityType_ActivityTypeVersion");
 0439
 0440                    b.HasIndex("Timestamp", "Sequence")
 0441                        .HasDatabaseName("IX_WorkflowExecutionLogRecord_Timestamp_Sequence");
 0442
 0443                    b.ToTable("WorkflowExecutionLogRecords", "Elsa");
 0444                });
 445
 0446            modelBuilder.Entity("Elsa.Workflows.Runtime.Entities.WorkflowInboxMessage", b =>
 0447                {
 0448                    b.Property<string>("Id")
 0449                        .HasColumnType("text");
 0450
 0451                    b.Property<string>("ActivityInstanceId")
 0452                        .HasColumnType("text");
 0453
 0454                    b.Property<string>("ActivityTypeName")
 0455                        .IsRequired()
 0456                        .HasColumnType("text");
 0457
 0458                    b.Property<string>("CorrelationId")
 0459                        .HasColumnType("text");
 0460
 0461                    b.Property<DateTimeOffset>("CreatedAt")
 0462                        .HasColumnType("timestamp with time zone");
 0463
 0464                    b.Property<DateTimeOffset>("ExpiresAt")
 0465                        .HasColumnType("timestamp with time zone");
 0466
 0467                    b.Property<string>("Hash")
 0468                        .IsRequired()
 0469                        .HasColumnType("text");
 0470
 0471                    b.Property<string>("SerializedBookmarkPayload")
 0472                        .HasColumnType("text");
 0473
 0474                    b.Property<string>("SerializedInput")
 0475                        .HasColumnType("text");
 0476
 0477                    b.Property<string>("TenantId")
 0478                        .HasColumnType("text");
 0479
 0480                    b.Property<string>("WorkflowInstanceId")
 0481                        .HasColumnType("text");
 0482
 0483                    b.HasKey("Id");
 0484
 0485                    b.HasIndex(new[] { "ActivityInstanceId" }, "IX_WorkflowInboxMessage_ActivityInstanceId");
 0486
 0487                    b.HasIndex(new[] { "ActivityTypeName" }, "IX_WorkflowInboxMessage_ActivityTypeName");
 0488
 0489                    b.HasIndex(new[] { "CorrelationId" }, "IX_WorkflowInboxMessage_CorrelationId");
 0490
 0491                    b.HasIndex(new[] { "CreatedAt" }, "IX_WorkflowInboxMessage_CreatedAt");
 0492
 0493                    b.HasIndex(new[] { "ExpiresAt" }, "IX_WorkflowInboxMessage_ExpiresAt");
 0494
 0495                    b.HasIndex(new[] { "Hash" }, "IX_WorkflowInboxMessage_Hash");
 0496
 0497                    b.HasIndex(new[] { "WorkflowInstanceId" }, "IX_WorkflowInboxMessage_WorkflowInstanceId");
 0498
 0499                    b.ToTable("WorkflowInboxMessages", "Elsa");
 0500                });
 501#pragma warning restore 612, 618
 0502        }
 503    }
 504}