-- Wann die Bewegung tatsaechlich stattfand. Beim Import ist das der Kauf im -- Shop, nicht der Zeitpunkt, an dem jemand hier auf "Buchen" geklickt hat. ALTER TABLE "CreditLedger" ADD COLUMN IF NOT EXISTS "occurredAt" TIMESTAMP(3); -- Bestand: erst einmal der Eintragungszeitpunkt, ... UPDATE "CreditLedger" SET "occurredAt" = "createdAt" WHERE "occurredAt" IS NULL; -- ... und fuer bereits gebuchte Importe das echte Kaufdatum nachtragen. Der -- Weg fuehrt ueber die Bestellung: sie verbindet die Buchung mit der Zeile, -- in der das Kaufdatum steht. UPDATE "CreditLedger" cl SET "occurredAt" = r."purchasedAt" FROM "ImportedOrder" o JOIN "ImportRow" r ON r."externalId" = o."externalId" AND r."importId" = o."importId" WHERE cl."groupId" = o."groupId" AND r."purchasedAt" IS NOT NULL; ALTER TABLE "CreditLedger" ALTER COLUMN "occurredAt" SET NOT NULL; ALTER TABLE "CreditLedger" ALTER COLUMN "occurredAt" SET DEFAULT CURRENT_TIMESTAMP; CREATE INDEX IF NOT EXISTS "CreditLedger_occurredAt_idx" ON "CreditLedger"("occurredAt"); -- Wann ein Antrag gestellt wurde, steht in der Boarduebersicht. Bestehende -- Threads bekommen den Wert beim naechsten Abgleich nachgetragen. ALTER TABLE "ForumThread" ADD COLUMN IF NOT EXISTS "postedAt" TIMESTAMP(3); -- Stand der wiederkehrenden Laeufe. Im Code steht der Zeitplan, hier steht, -- wann zuletzt gelaufen wurde - sonst stiesse jeder Neustart alles neu an. CREATE TABLE IF NOT EXISTS "ScheduledRun" ( "name" TEXT NOT NULL, "lastRunAt" TIMESTAMP(3), "lastStatus" TEXT, "lastNote" TEXT, "updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "ScheduledRun_pkey" PRIMARY KEY ("name") );