Add project files.

This commit is contained in:
2025-08-18 17:11:43 +03:30
parent 807dc263be
commit e5eb10d604
3943 changed files with 223719 additions and 0 deletions
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Description>
Provides EF Core migrations for Quartz.NET.
</Description>
<PackageTags>elsa module scheduling quartz ef core migrations</PackageTags>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer" />
<PackageReference Include="Microsoft.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" PrivateAssets="all" />
<PackageReference Include="Quartz.Serialization.Json" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Elsa.EntityFrameworkCore.Common\Elsa.EntityFrameworkCore.Common.csproj" />
<ProjectReference Include="..\Elsa.Quartz\Elsa.Quartz.csproj" />
</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,643 @@
// <auto-generated />
using System;
using Elsa.Quartz.EntityFrameworkCore.SqlServer;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Elsa.Quartz.EntityFrameworkCore.SqlServer.Migrations
{
[DbContext(typeof(SqlServerQuartzDbContext))]
[Migration("20231029143236_AddQuartz")]
partial class AddQuartz
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.13")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzBlobTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<byte[]>("BlobData")
.HasColumnType("varbinary(max)")
.HasColumnName("BLOB_DATA");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.ToTable("QRTZ_BLOB_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzCalendar", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("CalendarName")
.HasMaxLength(200)
.IsUnicode(true)
.HasColumnType("nvarchar(200)")
.HasColumnName("CALENDAR_NAME");
b.Property<byte[]>("Calendar")
.IsRequired()
.HasColumnType("varbinary(max)")
.HasColumnName("CALENDAR");
b.HasKey("SchedulerName", "CalendarName");
b.ToTable("QRTZ_CALENDARS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzCronTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<string>("CronExpression")
.IsRequired()
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("CRON_EXPRESSION");
b.Property<string>("TimeZoneId")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("TIME_ZONE_ID");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.ToTable("QRTZ_CRON_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzFiredTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("EntryId")
.HasMaxLength(140)
.IsUnicode(true)
.HasColumnType("nvarchar(140)")
.HasColumnName("ENTRY_ID");
b.Property<long>("FiredTime")
.HasColumnType("bigint")
.HasColumnName("FIRED_TIME");
b.Property<string>("InstanceName")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("INSTANCE_NAME");
b.Property<bool>("IsNonConcurrent")
.HasColumnType("bit")
.HasColumnName("IS_NONCONCURRENT");
b.Property<string>("JobGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_GROUP");
b.Property<string>("JobName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_NAME");
b.Property<int>("Priority")
.HasColumnType("int")
.HasColumnName("PRIORITY");
b.Property<bool?>("RequestsRecovery")
.HasColumnType("bit")
.HasColumnName("REQUESTS_RECOVERY");
b.Property<long>("ScheduledTime")
.HasColumnType("bigint")
.HasColumnName("SCHED_TIME");
b.Property<string>("State")
.IsRequired()
.HasMaxLength(16)
.IsUnicode(true)
.HasColumnType("nvarchar(16)")
.HasColumnName("STATE");
b.Property<string>("TriggerGroup")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<string>("TriggerName")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.HasKey("SchedulerName", "EntryId");
b.HasIndex("InstanceName")
.HasDatabaseName("IDX_QRTZ_FT_TRIG_INST_NAME");
b.HasIndex("JobGroup")
.HasDatabaseName("IDX_QRTZ_FT_JOB_GROUP");
b.HasIndex("JobName")
.HasDatabaseName("IDX_QRTZ_FT_JOB_NAME");
b.HasIndex("RequestsRecovery")
.HasDatabaseName("IDX_QRTZ_FT_JOB_REQ_RECOVERY");
b.HasIndex("TriggerGroup")
.HasDatabaseName("IDX_QRTZ_FT_TRIG_GROUP");
b.HasIndex("TriggerName")
.HasDatabaseName("IDX_QRTZ_FT_TRIG_NAME");
b.HasIndex("SchedulerName", "TriggerName", "TriggerGroup")
.HasDatabaseName("IDX_QRTZ_FT_TRIG_NM_GP");
b.ToTable("QRTZ_FIRED_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzJobDetail", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("JobName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_NAME");
b.Property<string>("JobGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_GROUP");
b.Property<string>("Description")
.HasMaxLength(250)
.IsUnicode(true)
.HasColumnType("nvarchar(250)")
.HasColumnName("DESCRIPTION");
b.Property<bool>("IsDurable")
.HasColumnType("bit")
.HasColumnName("IS_DURABLE");
b.Property<bool>("IsNonConcurrent")
.HasColumnType("bit")
.HasColumnName("IS_NONCONCURRENT");
b.Property<bool>("IsUpdateData")
.HasColumnType("bit")
.HasColumnName("IS_UPDATE_DATA");
b.Property<string>("JobClassName")
.IsRequired()
.HasMaxLength(250)
.IsUnicode(true)
.HasColumnType("nvarchar(250)")
.HasColumnName("JOB_CLASS_NAME");
b.Property<byte[]>("JobData")
.HasColumnType("varbinary(max)")
.HasColumnName("JOB_DATA");
b.Property<bool>("RequestsRecovery")
.HasColumnType("bit")
.HasColumnName("REQUESTS_RECOVERY");
b.HasKey("SchedulerName", "JobName", "JobGroup");
b.HasIndex("RequestsRecovery")
.HasDatabaseName("IDX_QRTZ_J_REQ_RECOVERY");
b.ToTable("QRTZ_JOB_DETAILS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzLock", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("LockName")
.HasMaxLength(40)
.IsUnicode(true)
.HasColumnType("nvarchar(40)")
.HasColumnName("LOCK_NAME");
b.HasKey("SchedulerName", "LockName");
b.ToTable("QRTZ_LOCKS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzPausedTriggerGroup", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.HasKey("SchedulerName", "TriggerGroup");
b.ToTable("QRTZ_PAUSED_TRIGGER_GRPS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSchedulerState", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("InstanceName")
.HasMaxLength(200)
.IsUnicode(true)
.HasColumnType("nvarchar(200)")
.HasColumnName("INSTANCE_NAME");
b.Property<long>("CheckInInterval")
.HasColumnType("bigint")
.HasColumnName("CHECKIN_INTERVAL");
b.Property<long>("LastCheckInTime")
.HasColumnType("bigint")
.HasColumnName("LAST_CHECKIN_TIME");
b.HasKey("SchedulerName", "InstanceName");
b.ToTable("QRTZ_SCHEDULER_STATE", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSimplePropertyTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<bool?>("BooleanProperty1")
.HasColumnType("bit")
.HasColumnName("BOOL_PROP_1");
b.Property<bool?>("BooleanProperty2")
.HasColumnType("bit")
.HasColumnName("BOOL_PROP_2");
b.Property<decimal?>("DecimalProperty1")
.HasColumnType("numeric(13,4)")
.HasColumnName("DEC_PROP_1");
b.Property<decimal?>("DecimalProperty2")
.HasColumnType("numeric(13,4)")
.HasColumnName("DEC_PROP_2");
b.Property<int?>("IntegerProperty1")
.HasColumnType("int")
.HasColumnName("INT_PROP_1");
b.Property<int?>("IntegerProperty2")
.HasColumnType("int")
.HasColumnName("INT_PROP_2");
b.Property<long?>("LongProperty1")
.HasColumnType("bigint")
.HasColumnName("LONG_PROP_1");
b.Property<long?>("LongProperty2")
.HasColumnType("bigint")
.HasColumnName("LONG_PROP_2");
b.Property<string>("StringProperty1")
.IsRequired()
.HasMaxLength(512)
.IsUnicode(true)
.HasColumnType("nvarchar(512)")
.HasColumnName("STR_PROP_1");
b.Property<string>("StringProperty2")
.IsRequired()
.HasMaxLength(512)
.IsUnicode(true)
.HasColumnType("nvarchar(512)")
.HasColumnName("STR_PROP_2");
b.Property<string>("StringProperty3")
.IsRequired()
.HasMaxLength(512)
.IsUnicode(true)
.HasColumnType("nvarchar(512)")
.HasColumnName("STR_PROP_3");
b.Property<string>("TimeZoneId")
.HasMaxLength(80)
.IsUnicode(true)
.HasColumnType("nvarchar(80)")
.HasColumnName("TIME_ZONE_ID");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.ToTable("QRTZ_SIMPROP_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSimpleTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<long>("RepeatCount")
.HasColumnType("bigint")
.HasColumnName("REPEAT_COUNT");
b.Property<long>("RepeatInterval")
.HasColumnType("bigint")
.HasColumnName("REPEAT_INTERVAL");
b.Property<long>("TimesTriggered")
.HasColumnType("bigint")
.HasColumnName("TIMES_TRIGGERED");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.ToTable("QRTZ_SIMPLE_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<string>("CalendarName")
.HasMaxLength(200)
.IsUnicode(true)
.HasColumnType("nvarchar(200)")
.HasColumnName("CALENDAR_NAME");
b.Property<string>("Description")
.HasMaxLength(250)
.IsUnicode(true)
.HasColumnType("nvarchar(250)")
.HasColumnName("DESCRIPTION");
b.Property<long?>("EndTime")
.HasColumnType("bigint")
.HasColumnName("END_TIME");
b.Property<byte[]>("JobData")
.HasColumnType("varbinary(max)")
.HasColumnName("JOB_DATA");
b.Property<string>("JobGroup")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_GROUP");
b.Property<string>("JobName")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_NAME");
b.Property<short?>("MisfireInstruction")
.HasColumnType("smallint")
.HasColumnName("MISFIRE_INSTR");
b.Property<long?>("NextFireTime")
.HasColumnType("bigint")
.HasColumnName("NEXT_FIRE_TIME");
b.Property<long?>("PreviousFireTime")
.HasColumnType("bigint")
.HasColumnName("PREV_FIRE_TIME");
b.Property<int?>("Priority")
.HasColumnType("int")
.HasColumnName("PRIORITY");
b.Property<long>("StartTime")
.HasColumnType("bigint")
.HasColumnName("START_TIME");
b.Property<string>("TriggerState")
.IsRequired()
.HasMaxLength(16)
.IsUnicode(true)
.HasColumnType("nvarchar(16)")
.HasColumnName("TRIGGER_STATE");
b.Property<string>("TriggerType")
.IsRequired()
.HasMaxLength(8)
.IsUnicode(true)
.HasColumnType("nvarchar(8)")
.HasColumnName("TRIGGER_TYPE");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.HasIndex("NextFireTime")
.HasDatabaseName("IDX_QRTZ_T_NEXT_FIRE_TIME");
b.HasIndex("TriggerState")
.HasDatabaseName("IDX_QRTZ_T_STATE");
b.HasIndex("NextFireTime", "TriggerState")
.HasDatabaseName("IDX_QRTZ_T_NFT_ST");
b.HasIndex("SchedulerName", "JobName", "JobGroup");
b.ToTable("QRTZ_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzBlobTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", "Trigger")
.WithMany("BlobTriggers")
.HasForeignKey("SchedulerName", "TriggerName", "TriggerGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Trigger");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzCronTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", "Trigger")
.WithMany("CronTriggers")
.HasForeignKey("SchedulerName", "TriggerName", "TriggerGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Trigger");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSimplePropertyTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", "Trigger")
.WithMany("SimplePropertyTriggers")
.HasForeignKey("SchedulerName", "TriggerName", "TriggerGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Trigger");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSimpleTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", "Trigger")
.WithMany("SimpleTriggers")
.HasForeignKey("SchedulerName", "TriggerName", "TriggerGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Trigger");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzJobDetail", "JobDetail")
.WithMany("Triggers")
.HasForeignKey("SchedulerName", "JobName", "JobGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("JobDetail");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzJobDetail", b =>
{
b.Navigation("Triggers");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", b =>
{
b.Navigation("BlobTriggers");
b.Navigation("CronTriggers");
b.Navigation("SimplePropertyTriggers");
b.Navigation("SimpleTriggers");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,373 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Elsa.Quartz.EntityFrameworkCore.SqlServer.Migrations
{
/// <inheritdoc />
public partial class AddQuartz : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.EnsureSchema(
name: "quartz");
migrationBuilder.CreateTable(
name: "QRTZ_CALENDARS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
CALENDAR_NAME = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: false),
CALENDAR = table.Column<byte[]>(type: "varbinary(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_CALENDARS", x => new { x.SCHED_NAME, x.CALENDAR_NAME });
});
migrationBuilder.CreateTable(
name: "QRTZ_FIRED_TRIGGERS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
ENTRY_ID = table.Column<string>(type: "nvarchar(140)", maxLength: 140, nullable: false),
TRIGGER_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
TRIGGER_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
INSTANCE_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
FIRED_TIME = table.Column<long>(type: "bigint", nullable: false),
SCHED_TIME = table.Column<long>(type: "bigint", nullable: false),
PRIORITY = table.Column<int>(type: "int", nullable: false),
STATE = table.Column<string>(type: "nvarchar(16)", maxLength: 16, nullable: false),
JOB_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: true),
JOB_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: true),
IS_NONCONCURRENT = table.Column<bool>(type: "bit", nullable: false),
REQUESTS_RECOVERY = table.Column<bool>(type: "bit", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_FIRED_TRIGGERS", x => new { x.SCHED_NAME, x.ENTRY_ID });
});
migrationBuilder.CreateTable(
name: "QRTZ_JOB_DETAILS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
JOB_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
JOB_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
DESCRIPTION = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: true),
JOB_CLASS_NAME = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: false),
IS_DURABLE = table.Column<bool>(type: "bit", nullable: false),
IS_NONCONCURRENT = table.Column<bool>(type: "bit", nullable: false),
IS_UPDATE_DATA = table.Column<bool>(type: "bit", nullable: false),
REQUESTS_RECOVERY = table.Column<bool>(type: "bit", nullable: false),
JOB_DATA = table.Column<byte[]>(type: "varbinary(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_JOB_DETAILS", x => new { x.SCHED_NAME, x.JOB_NAME, x.JOB_GROUP });
});
migrationBuilder.CreateTable(
name: "QRTZ_LOCKS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
LOCK_NAME = table.Column<string>(type: "nvarchar(40)", maxLength: 40, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_LOCKS", x => new { x.SCHED_NAME, x.LOCK_NAME });
});
migrationBuilder.CreateTable(
name: "QRTZ_PAUSED_TRIGGER_GRPS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
TRIGGER_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_PAUSED_TRIGGER_GRPS", x => new { x.SCHED_NAME, x.TRIGGER_GROUP });
});
migrationBuilder.CreateTable(
name: "QRTZ_SCHEDULER_STATE",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
INSTANCE_NAME = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: false),
LAST_CHECKIN_TIME = table.Column<long>(type: "bigint", nullable: false),
CHECKIN_INTERVAL = table.Column<long>(type: "bigint", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_SCHEDULER_STATE", x => new { x.SCHED_NAME, x.INSTANCE_NAME });
});
migrationBuilder.CreateTable(
name: "QRTZ_TRIGGERS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
TRIGGER_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
TRIGGER_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
JOB_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
JOB_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
DESCRIPTION = table.Column<string>(type: "nvarchar(250)", maxLength: 250, nullable: true),
NEXT_FIRE_TIME = table.Column<long>(type: "bigint", nullable: true),
PREV_FIRE_TIME = table.Column<long>(type: "bigint", nullable: true),
PRIORITY = table.Column<int>(type: "int", nullable: true),
TRIGGER_STATE = table.Column<string>(type: "nvarchar(16)", maxLength: 16, nullable: false),
TRIGGER_TYPE = table.Column<string>(type: "nvarchar(8)", maxLength: 8, nullable: false),
START_TIME = table.Column<long>(type: "bigint", nullable: false),
END_TIME = table.Column<long>(type: "bigint", nullable: true),
CALENDAR_NAME = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
MISFIRE_INSTR = table.Column<short>(type: "smallint", nullable: true),
JOB_DATA = table.Column<byte[]>(type: "varbinary(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_TRIGGERS", x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP });
table.ForeignKey(
name: "FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS_SCHED_NAME_JOB_NAME_JOB_GROUP",
columns: x => new { x.SCHED_NAME, x.JOB_NAME, x.JOB_GROUP },
principalSchema: "quartz",
principalTable: "QRTZ_JOB_DETAILS",
principalColumns: new[] { "SCHED_NAME", "JOB_NAME", "JOB_GROUP" },
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "QRTZ_BLOB_TRIGGERS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
TRIGGER_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
TRIGGER_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
BLOB_DATA = table.Column<byte[]>(type: "varbinary(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_BLOB_TRIGGERS", x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP });
table.ForeignKey(
name: "FK_QRTZ_BLOB_TRIGGERS_QRTZ_TRIGGERS_SCHED_NAME_TRIGGER_NAME_TRIGGER_GROUP",
columns: x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP },
principalSchema: "quartz",
principalTable: "QRTZ_TRIGGERS",
principalColumns: new[] { "SCHED_NAME", "TRIGGER_NAME", "TRIGGER_GROUP" },
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "QRTZ_CRON_TRIGGERS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
TRIGGER_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
TRIGGER_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
CRON_EXPRESSION = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
TIME_ZONE_ID = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_CRON_TRIGGERS", x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP });
table.ForeignKey(
name: "FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS_SCHED_NAME_TRIGGER_NAME_TRIGGER_GROUP",
columns: x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP },
principalSchema: "quartz",
principalTable: "QRTZ_TRIGGERS",
principalColumns: new[] { "SCHED_NAME", "TRIGGER_NAME", "TRIGGER_GROUP" },
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "QRTZ_SIMPLE_TRIGGERS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
TRIGGER_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
TRIGGER_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
REPEAT_COUNT = table.Column<long>(type: "bigint", nullable: false),
REPEAT_INTERVAL = table.Column<long>(type: "bigint", nullable: false),
TIMES_TRIGGERED = table.Column<long>(type: "bigint", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_SIMPLE_TRIGGERS", x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP });
table.ForeignKey(
name: "FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS_SCHED_NAME_TRIGGER_NAME_TRIGGER_GROUP",
columns: x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP },
principalSchema: "quartz",
principalTable: "QRTZ_TRIGGERS",
principalColumns: new[] { "SCHED_NAME", "TRIGGER_NAME", "TRIGGER_GROUP" },
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "QRTZ_SIMPROP_TRIGGERS",
schema: "quartz",
columns: table => new
{
SCHED_NAME = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
TRIGGER_NAME = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
TRIGGER_GROUP = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
STR_PROP_1 = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: false),
STR_PROP_2 = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: false),
STR_PROP_3 = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: false),
INT_PROP_1 = table.Column<int>(type: "int", nullable: true),
INT_PROP_2 = table.Column<int>(type: "int", nullable: true),
LONG_PROP_1 = table.Column<long>(type: "bigint", nullable: true),
LONG_PROP_2 = table.Column<long>(type: "bigint", nullable: true),
DEC_PROP_1 = table.Column<decimal>(type: "numeric(13,4)", nullable: true),
DEC_PROP_2 = table.Column<decimal>(type: "numeric(13,4)", nullable: true),
BOOL_PROP_1 = table.Column<bool>(type: "bit", nullable: true),
BOOL_PROP_2 = table.Column<bool>(type: "bit", nullable: true),
TIME_ZONE_ID = table.Column<string>(type: "nvarchar(80)", maxLength: 80, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_QRTZ_SIMPROP_TRIGGERS", x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP });
table.ForeignKey(
name: "FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS_SCHED_NAME_TRIGGER_NAME_TRIGGER_GROUP",
columns: x => new { x.SCHED_NAME, x.TRIGGER_NAME, x.TRIGGER_GROUP },
principalSchema: "quartz",
principalTable: "QRTZ_TRIGGERS",
principalColumns: new[] { "SCHED_NAME", "TRIGGER_NAME", "TRIGGER_GROUP" },
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_FT_JOB_GROUP",
schema: "quartz",
table: "QRTZ_FIRED_TRIGGERS",
column: "JOB_GROUP");
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_FT_JOB_NAME",
schema: "quartz",
table: "QRTZ_FIRED_TRIGGERS",
column: "JOB_NAME");
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_FT_JOB_REQ_RECOVERY",
schema: "quartz",
table: "QRTZ_FIRED_TRIGGERS",
column: "REQUESTS_RECOVERY");
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_FT_TRIG_GROUP",
schema: "quartz",
table: "QRTZ_FIRED_TRIGGERS",
column: "TRIGGER_GROUP");
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_FT_TRIG_INST_NAME",
schema: "quartz",
table: "QRTZ_FIRED_TRIGGERS",
column: "INSTANCE_NAME");
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_FT_TRIG_NAME",
schema: "quartz",
table: "QRTZ_FIRED_TRIGGERS",
column: "TRIGGER_NAME");
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_FT_TRIG_NM_GP",
schema: "quartz",
table: "QRTZ_FIRED_TRIGGERS",
columns: new[] { "SCHED_NAME", "TRIGGER_NAME", "TRIGGER_GROUP" });
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_J_REQ_RECOVERY",
schema: "quartz",
table: "QRTZ_JOB_DETAILS",
column: "REQUESTS_RECOVERY");
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_T_NEXT_FIRE_TIME",
schema: "quartz",
table: "QRTZ_TRIGGERS",
column: "NEXT_FIRE_TIME");
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_T_NFT_ST",
schema: "quartz",
table: "QRTZ_TRIGGERS",
columns: new[] { "NEXT_FIRE_TIME", "TRIGGER_STATE" });
migrationBuilder.CreateIndex(
name: "IDX_QRTZ_T_STATE",
schema: "quartz",
table: "QRTZ_TRIGGERS",
column: "TRIGGER_STATE");
migrationBuilder.CreateIndex(
name: "IX_QRTZ_TRIGGERS_SCHED_NAME_JOB_NAME_JOB_GROUP",
schema: "quartz",
table: "QRTZ_TRIGGERS",
columns: new[] { "SCHED_NAME", "JOB_NAME", "JOB_GROUP" });
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "QRTZ_BLOB_TRIGGERS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_CALENDARS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_CRON_TRIGGERS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_FIRED_TRIGGERS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_LOCKS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_PAUSED_TRIGGER_GRPS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_SCHEDULER_STATE",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_SIMPLE_TRIGGERS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_SIMPROP_TRIGGERS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_TRIGGERS",
schema: "quartz");
migrationBuilder.DropTable(
name: "QRTZ_JOB_DETAILS",
schema: "quartz");
}
}
}
@@ -0,0 +1,640 @@
// <auto-generated />
using System;
using Elsa.Quartz.EntityFrameworkCore.SqlServer;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Elsa.Quartz.EntityFrameworkCore.SqlServer.Migrations
{
[DbContext(typeof(SqlServerQuartzDbContext))]
partial class SqlServerQuartzDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.13")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzBlobTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<byte[]>("BlobData")
.HasColumnType("varbinary(max)")
.HasColumnName("BLOB_DATA");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.ToTable("QRTZ_BLOB_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzCalendar", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("CalendarName")
.HasMaxLength(200)
.IsUnicode(true)
.HasColumnType("nvarchar(200)")
.HasColumnName("CALENDAR_NAME");
b.Property<byte[]>("Calendar")
.IsRequired()
.HasColumnType("varbinary(max)")
.HasColumnName("CALENDAR");
b.HasKey("SchedulerName", "CalendarName");
b.ToTable("QRTZ_CALENDARS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzCronTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<string>("CronExpression")
.IsRequired()
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("CRON_EXPRESSION");
b.Property<string>("TimeZoneId")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("TIME_ZONE_ID");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.ToTable("QRTZ_CRON_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzFiredTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("EntryId")
.HasMaxLength(140)
.IsUnicode(true)
.HasColumnType("nvarchar(140)")
.HasColumnName("ENTRY_ID");
b.Property<long>("FiredTime")
.HasColumnType("bigint")
.HasColumnName("FIRED_TIME");
b.Property<string>("InstanceName")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("INSTANCE_NAME");
b.Property<bool>("IsNonConcurrent")
.HasColumnType("bit")
.HasColumnName("IS_NONCONCURRENT");
b.Property<string>("JobGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_GROUP");
b.Property<string>("JobName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_NAME");
b.Property<int>("Priority")
.HasColumnType("int")
.HasColumnName("PRIORITY");
b.Property<bool?>("RequestsRecovery")
.HasColumnType("bit")
.HasColumnName("REQUESTS_RECOVERY");
b.Property<long>("ScheduledTime")
.HasColumnType("bigint")
.HasColumnName("SCHED_TIME");
b.Property<string>("State")
.IsRequired()
.HasMaxLength(16)
.IsUnicode(true)
.HasColumnType("nvarchar(16)")
.HasColumnName("STATE");
b.Property<string>("TriggerGroup")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<string>("TriggerName")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.HasKey("SchedulerName", "EntryId");
b.HasIndex("InstanceName")
.HasDatabaseName("IDX_QRTZ_FT_TRIG_INST_NAME");
b.HasIndex("JobGroup")
.HasDatabaseName("IDX_QRTZ_FT_JOB_GROUP");
b.HasIndex("JobName")
.HasDatabaseName("IDX_QRTZ_FT_JOB_NAME");
b.HasIndex("RequestsRecovery")
.HasDatabaseName("IDX_QRTZ_FT_JOB_REQ_RECOVERY");
b.HasIndex("TriggerGroup")
.HasDatabaseName("IDX_QRTZ_FT_TRIG_GROUP");
b.HasIndex("TriggerName")
.HasDatabaseName("IDX_QRTZ_FT_TRIG_NAME");
b.HasIndex("SchedulerName", "TriggerName", "TriggerGroup")
.HasDatabaseName("IDX_QRTZ_FT_TRIG_NM_GP");
b.ToTable("QRTZ_FIRED_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzJobDetail", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("JobName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_NAME");
b.Property<string>("JobGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_GROUP");
b.Property<string>("Description")
.HasMaxLength(250)
.IsUnicode(true)
.HasColumnType("nvarchar(250)")
.HasColumnName("DESCRIPTION");
b.Property<bool>("IsDurable")
.HasColumnType("bit")
.HasColumnName("IS_DURABLE");
b.Property<bool>("IsNonConcurrent")
.HasColumnType("bit")
.HasColumnName("IS_NONCONCURRENT");
b.Property<bool>("IsUpdateData")
.HasColumnType("bit")
.HasColumnName("IS_UPDATE_DATA");
b.Property<string>("JobClassName")
.IsRequired()
.HasMaxLength(250)
.IsUnicode(true)
.HasColumnType("nvarchar(250)")
.HasColumnName("JOB_CLASS_NAME");
b.Property<byte[]>("JobData")
.HasColumnType("varbinary(max)")
.HasColumnName("JOB_DATA");
b.Property<bool>("RequestsRecovery")
.HasColumnType("bit")
.HasColumnName("REQUESTS_RECOVERY");
b.HasKey("SchedulerName", "JobName", "JobGroup");
b.HasIndex("RequestsRecovery")
.HasDatabaseName("IDX_QRTZ_J_REQ_RECOVERY");
b.ToTable("QRTZ_JOB_DETAILS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzLock", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("LockName")
.HasMaxLength(40)
.IsUnicode(true)
.HasColumnType("nvarchar(40)")
.HasColumnName("LOCK_NAME");
b.HasKey("SchedulerName", "LockName");
b.ToTable("QRTZ_LOCKS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzPausedTriggerGroup", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.HasKey("SchedulerName", "TriggerGroup");
b.ToTable("QRTZ_PAUSED_TRIGGER_GRPS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSchedulerState", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("InstanceName")
.HasMaxLength(200)
.IsUnicode(true)
.HasColumnType("nvarchar(200)")
.HasColumnName("INSTANCE_NAME");
b.Property<long>("CheckInInterval")
.HasColumnType("bigint")
.HasColumnName("CHECKIN_INTERVAL");
b.Property<long>("LastCheckInTime")
.HasColumnType("bigint")
.HasColumnName("LAST_CHECKIN_TIME");
b.HasKey("SchedulerName", "InstanceName");
b.ToTable("QRTZ_SCHEDULER_STATE", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSimplePropertyTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<bool?>("BooleanProperty1")
.HasColumnType("bit")
.HasColumnName("BOOL_PROP_1");
b.Property<bool?>("BooleanProperty2")
.HasColumnType("bit")
.HasColumnName("BOOL_PROP_2");
b.Property<decimal?>("DecimalProperty1")
.HasColumnType("numeric(13,4)")
.HasColumnName("DEC_PROP_1");
b.Property<decimal?>("DecimalProperty2")
.HasColumnType("numeric(13,4)")
.HasColumnName("DEC_PROP_2");
b.Property<int?>("IntegerProperty1")
.HasColumnType("int")
.HasColumnName("INT_PROP_1");
b.Property<int?>("IntegerProperty2")
.HasColumnType("int")
.HasColumnName("INT_PROP_2");
b.Property<long?>("LongProperty1")
.HasColumnType("bigint")
.HasColumnName("LONG_PROP_1");
b.Property<long?>("LongProperty2")
.HasColumnType("bigint")
.HasColumnName("LONG_PROP_2");
b.Property<string>("StringProperty1")
.IsRequired()
.HasMaxLength(512)
.IsUnicode(true)
.HasColumnType("nvarchar(512)")
.HasColumnName("STR_PROP_1");
b.Property<string>("StringProperty2")
.IsRequired()
.HasMaxLength(512)
.IsUnicode(true)
.HasColumnType("nvarchar(512)")
.HasColumnName("STR_PROP_2");
b.Property<string>("StringProperty3")
.IsRequired()
.HasMaxLength(512)
.IsUnicode(true)
.HasColumnType("nvarchar(512)")
.HasColumnName("STR_PROP_3");
b.Property<string>("TimeZoneId")
.HasMaxLength(80)
.IsUnicode(true)
.HasColumnType("nvarchar(80)")
.HasColumnName("TIME_ZONE_ID");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.ToTable("QRTZ_SIMPROP_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSimpleTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<long>("RepeatCount")
.HasColumnType("bigint")
.HasColumnName("REPEAT_COUNT");
b.Property<long>("RepeatInterval")
.HasColumnType("bigint")
.HasColumnName("REPEAT_INTERVAL");
b.Property<long>("TimesTriggered")
.HasColumnType("bigint")
.HasColumnName("TIMES_TRIGGERED");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.ToTable("QRTZ_SIMPLE_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", b =>
{
b.Property<string>("SchedulerName")
.HasMaxLength(120)
.IsUnicode(true)
.HasColumnType("nvarchar(120)")
.HasColumnName("SCHED_NAME");
b.Property<string>("TriggerName")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_NAME");
b.Property<string>("TriggerGroup")
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("TRIGGER_GROUP");
b.Property<string>("CalendarName")
.HasMaxLength(200)
.IsUnicode(true)
.HasColumnType("nvarchar(200)")
.HasColumnName("CALENDAR_NAME");
b.Property<string>("Description")
.HasMaxLength(250)
.IsUnicode(true)
.HasColumnType("nvarchar(250)")
.HasColumnName("DESCRIPTION");
b.Property<long?>("EndTime")
.HasColumnType("bigint")
.HasColumnName("END_TIME");
b.Property<byte[]>("JobData")
.HasColumnType("varbinary(max)")
.HasColumnName("JOB_DATA");
b.Property<string>("JobGroup")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_GROUP");
b.Property<string>("JobName")
.IsRequired()
.HasMaxLength(150)
.IsUnicode(true)
.HasColumnType("nvarchar(150)")
.HasColumnName("JOB_NAME");
b.Property<short?>("MisfireInstruction")
.HasColumnType("smallint")
.HasColumnName("MISFIRE_INSTR");
b.Property<long?>("NextFireTime")
.HasColumnType("bigint")
.HasColumnName("NEXT_FIRE_TIME");
b.Property<long?>("PreviousFireTime")
.HasColumnType("bigint")
.HasColumnName("PREV_FIRE_TIME");
b.Property<int?>("Priority")
.HasColumnType("int")
.HasColumnName("PRIORITY");
b.Property<long>("StartTime")
.HasColumnType("bigint")
.HasColumnName("START_TIME");
b.Property<string>("TriggerState")
.IsRequired()
.HasMaxLength(16)
.IsUnicode(true)
.HasColumnType("nvarchar(16)")
.HasColumnName("TRIGGER_STATE");
b.Property<string>("TriggerType")
.IsRequired()
.HasMaxLength(8)
.IsUnicode(true)
.HasColumnType("nvarchar(8)")
.HasColumnName("TRIGGER_TYPE");
b.HasKey("SchedulerName", "TriggerName", "TriggerGroup");
b.HasIndex("NextFireTime")
.HasDatabaseName("IDX_QRTZ_T_NEXT_FIRE_TIME");
b.HasIndex("TriggerState")
.HasDatabaseName("IDX_QRTZ_T_STATE");
b.HasIndex("NextFireTime", "TriggerState")
.HasDatabaseName("IDX_QRTZ_T_NFT_ST");
b.HasIndex("SchedulerName", "JobName", "JobGroup");
b.ToTable("QRTZ_TRIGGERS", "quartz");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzBlobTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", "Trigger")
.WithMany("BlobTriggers")
.HasForeignKey("SchedulerName", "TriggerName", "TriggerGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Trigger");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzCronTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", "Trigger")
.WithMany("CronTriggers")
.HasForeignKey("SchedulerName", "TriggerName", "TriggerGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Trigger");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSimplePropertyTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", "Trigger")
.WithMany("SimplePropertyTriggers")
.HasForeignKey("SchedulerName", "TriggerName", "TriggerGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Trigger");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzSimpleTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", "Trigger")
.WithMany("SimpleTriggers")
.HasForeignKey("SchedulerName", "TriggerName", "TriggerGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Trigger");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", b =>
{
b.HasOne("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzJobDetail", "JobDetail")
.WithMany("Triggers")
.HasForeignKey("SchedulerName", "JobName", "JobGroup")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("JobDetail");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzJobDetail", b =>
{
b.Navigation("Triggers");
});
modelBuilder.Entity("AppAny.Quartz.EntityFrameworkCore.Migrations.QuartzTrigger", b =>
{
b.Navigation("BlobTriggers");
b.Navigation("CronTriggers");
b.Navigation("SimplePropertyTriggers");
b.Navigation("SimpleTriggers");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,32 @@
using AppAny.Quartz.EntityFrameworkCore.Migrations;
using AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer;
using Elsa.EntityFrameworkCore.Abstractions;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
namespace Elsa.Quartz.EntityFrameworkCore.SqlServer;
/// <summary>
/// Quartz DbContext for SQL Server.
/// </summary>
[UsedImplicitly]
public class SqlServerQuartzDbContext : DbContext
{
/// <inheritdoc />
public SqlServerQuartzDbContext(DbContextOptions<SqlServerQuartzDbContext> options) : base(options)
{
}
/// <inheritdoc />
protected override void OnModelCreating(ModelBuilder modelBuilder) => modelBuilder.AddQuartz(model => model.UseSqlServer());
}
/// <summary>
/// Design-time factory for Quartz DbContext for SQL Server.
/// </summary>
[UsedImplicitly]
public class SqlServerQuartzDbContextFactory : DesignTimeDbContextFactoryBase<SqlServerQuartzDbContext>
{
/// <inheritdoc />
protected override void ConfigureBuilder(DbContextOptionsBuilder<SqlServerQuartzDbContext> builder, string connectionString) => builder.UseSqlServer(connectionString);
}
@@ -0,0 +1,53 @@
using Elsa.Quartz.EntityFrameworkCore.SqlServer;
using Elsa.Quartz.Features;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Quartz;
// ReSharper disable once CheckNamespace
namespace Elsa.EntityFrameworkCore.Extensions;
/// <summary>
/// Provides extensions to configure EF Core to use SQL Server.
/// </summary>
[PublicAPI]
public static class SqlServerQuartzExtensions
{
/// <summary>
/// Configures the <see cref="QuartzFeature"/> to use the SQL Server job store.
/// </summary>
public static QuartzFeature UseSqlServer(this QuartzFeature feature, string connectionString = Constants.DefaultConnectionString, bool useClustering = true, bool useContextPooling = false)
{
if (useContextPooling)
feature.Services.AddPooledDbContextFactory<SqlServerQuartzDbContext>(options => UseSqlServer(connectionString, options));
else
feature.Services.AddDbContextFactory<SqlServerQuartzDbContext>(options => UseSqlServer(connectionString, options));
feature.ConfigureQuartz += quartz =>
{
quartz.UsePersistentStore(store =>
{
store.UseNewtonsoftJsonSerializer();
store.UseSqlServer(options =>
{
options.ConnectionString = connectionString;
options.TablePrefix = "[quartz].qrtz_";
});
if (useClustering)
store.UseClustering();
});
};
feature.Module.ConfigureHostedService<RunMigrationsHostedService<SqlServerQuartzDbContext>>(-100);
return feature;
}
private static void UseSqlServer(string connectionString, DbContextOptionsBuilder options)
{
// Use SQL Server migrations.
options.UseSqlServer(connectionString, sqlServerDbContextOptionsBuilder => { sqlServerDbContextOptionsBuilder.MigrationsAssembly(typeof(SqlServerQuartzDbContext).Assembly.GetName().Name); });
}
}