Skip to content

New TaskRunNumberCounter that uses taskIdentifier + environmentId #1124

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions apps/webapp/app/v3/services/triggerTask.server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,15 @@ export class TriggerTaskService extends BaseService {
})
: undefined;

const counter = await tx.taskRunCounter.upsert({
where: { taskIdentifier: taskId },
const counter = await tx.taskRunNumberCounter.upsert({
where: {
taskIdentifier_environmentId: {
taskIdentifier: taskId,
environmentId: environment.id,
},
},
update: { lastNumber: { increment: 1 } },
create: { taskIdentifier: taskId, lastNumber: 1 },
create: { taskIdentifier: taskId, environmentId: environment.id, lastNumber: 1 },
select: { lastNumber: true },
});

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
-- CreateTable
CREATE TABLE "TaskRunNumberCounter" (
"id" TEXT NOT NULL,
"taskIdentifier" TEXT NOT NULL,
"environmentId" TEXT NOT NULL,
"lastNumber" INTEGER NOT NULL DEFAULT 0,

CONSTRAINT "TaskRunNumberCounter_pkey" PRIMARY KEY ("id")
);

-- CreateIndex
CREATE UNIQUE INDEX "TaskRunNumberCounter_taskIdentifier_environmentId_key" ON "TaskRunNumberCounter"("taskIdentifier", "environmentId");

-- AddForeignKey
ALTER TABLE "TaskRunNumberCounter" ADD CONSTRAINT "TaskRunNumberCounter_environmentId_fkey" FOREIGN KEY ("environmentId") REFERENCES "RuntimeEnvironment"("id") ON DELETE CASCADE ON UPDATE CASCADE;
21 changes: 18 additions & 3 deletions packages/database/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -406,9 +406,10 @@ model RuntimeEnvironment {
taskScheduleInstances TaskScheduleInstance[]
alerts ProjectAlert[]

sessions RuntimeEnvironmentSession[]
currentSession RuntimeEnvironmentSession? @relation("currentSession", fields: [currentSessionId], references: [id], onDelete: SetNull, onUpdate: Cascade)
currentSessionId String?
sessions RuntimeEnvironmentSession[]
currentSession RuntimeEnvironmentSession? @relation("currentSession", fields: [currentSessionId], references: [id], onDelete: SetNull, onUpdate: Cascade)
currentSessionId String?
taskRunNumberCounter TaskRunNumberCounter[]

@@unique([projectId, slug, orgMemberId])
@@unique([projectId, shortcode])
Expand Down Expand Up @@ -1730,11 +1731,25 @@ model TaskRunDependency {
updatedAt DateTime @updatedAt
}

/// deprecated, we hadn't included the project id in the unique constraint
model TaskRunCounter {
taskIdentifier String @id
lastNumber Int @default(0)
}

/// Used for the TaskRun number (e.g. #1,421)
model TaskRunNumberCounter {
id String @id @default(cuid())

taskIdentifier String
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
environmentId String

lastNumber Int @default(0)

@@unique([taskIdentifier, environmentId])
}

model TaskTag {
id String @id @default(cuid())
name String
Expand Down
Loading