diff --git a/Iceshrimp.Backend/Core/Database/DatabaseContext.cs b/Iceshrimp.Backend/Core/Database/DatabaseContext.cs index 5c2a938b..8b6ce0e5 100644 --- a/Iceshrimp.Backend/Core/Database/DatabaseContext.cs +++ b/Iceshrimp.Backend/Core/Database/DatabaseContext.cs @@ -1181,6 +1181,7 @@ public class DatabaseContext(DbContextOptions options) modelBuilder.Entity(entity => { + entity.Property(e => e.Id).ValueGeneratedNever(); entity.Property(e => e.Status).HasDefaultValue(Job.JobStatus.Queued); entity.Property(e => e.QueuedAt).HasDefaultValueSql("now()"); entity.HasOne().WithMany().HasForeignKey(d => d.WorkerId).OnDelete(DeleteBehavior.SetNull); diff --git a/Iceshrimp.Backend/Core/Database/Migrations/20240527200201_MigrateJobIdToUlid.cs b/Iceshrimp.Backend/Core/Database/Migrations/20240527200201_MigrateJobIdToUlid.cs new file mode 100644 index 00000000..fcecfe40 --- /dev/null +++ b/Iceshrimp.Backend/Core/Database/Migrations/20240527200201_MigrateJobIdToUlid.cs @@ -0,0 +1,25 @@ +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Infrastructure; + +#nullable disable + +namespace Iceshrimp.Backend.Core.Database.Migrations +{ + /// + [DbContext(typeof(DatabaseContext))] + [Migration("20240527200201_MigrateJobIdToUlid")] + public partial class MigrateJobIdToUlid : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.Sql("""UPDATE "jobs" SET "id" = concat('00000000-0', substring("id"::text, 11, 36))::uuid;"""); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/Iceshrimp.Backend/Core/Database/Migrations/DatabaseContextModelSnapshot.cs b/Iceshrimp.Backend/Core/Database/Migrations/DatabaseContextModelSnapshot.cs index bc46529c..c11ee665 100644 --- a/Iceshrimp.Backend/Core/Database/Migrations/DatabaseContextModelSnapshot.cs +++ b/Iceshrimp.Backend/Core/Database/Migrations/DatabaseContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace Iceshrimp.Backend.Core.Database.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "8.0.4") + .HasAnnotation("ProductVersion", "8.0.5") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.HasPostgresEnum(modelBuilder, "antenna_src_enum", new[] { "home", "all", "users", "list", "group", "instances" }); @@ -1539,7 +1539,6 @@ namespace Iceshrimp.Backend.Core.Database.Migrations modelBuilder.Entity("Iceshrimp.Backend.Core.Database.Tables.Job", b => { b.Property("Id") - .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); diff --git a/Iceshrimp.Backend/Core/Extensions/GuidExtensions.cs b/Iceshrimp.Backend/Core/Extensions/GuidExtensions.cs index c2d1f79a..70532bfd 100644 --- a/Iceshrimp.Backend/Core/Extensions/GuidExtensions.cs +++ b/Iceshrimp.Backend/Core/Extensions/GuidExtensions.cs @@ -3,4 +3,5 @@ namespace Iceshrimp.Backend.Core.Extensions; public static class GuidExtensions { public static string ToStringLower(this Guid guid) => guid.ToString().ToLowerInvariant(); + public static string ToStringLower(this Ulid ulid) => ulid.ToString().ToLowerInvariant(); } \ No newline at end of file diff --git a/Iceshrimp.Backend/Core/Services/QueueService.cs b/Iceshrimp.Backend/Core/Services/QueueService.cs index 0b99900d..83e257ca 100644 --- a/Iceshrimp.Backend/Core/Services/QueueService.cs +++ b/Iceshrimp.Backend/Core/Services/QueueService.cs @@ -502,7 +502,12 @@ public class PostgresJobQueue( await using var scope = GetScope(); await using var db = GetDbContext(scope); - var job = new Job { Queue = name, Data = JsonSerializer.Serialize(jobData) }; + var job = new Job + { + Id = Ulid.NewUlid().ToGuid(), + Queue = name, + Data = JsonSerializer.Serialize(jobData) + }; db.Add(job); await db.SaveChangesAsync(); await RaiseJobQueuedEvent(db); @@ -515,6 +520,7 @@ public class PostgresJobQueue( var job = new Job { + Id = Ulid.NewUlid().ToGuid(), Queue = name, Data = JsonSerializer.Serialize(jobData), Status = Job.JobStatus.Delayed, diff --git a/Iceshrimp.Backend/Iceshrimp.Backend.csproj b/Iceshrimp.Backend/Iceshrimp.Backend.csproj index d537ccb6..1a243328 100644 --- a/Iceshrimp.Backend/Iceshrimp.Backend.csproj +++ b/Iceshrimp.Backend/Iceshrimp.Backend.csproj @@ -58,6 +58,7 @@ +