mirror of
https://github.com/lukevella/rallly.git
synced 2025-06-02 10:41:54 +02:00
♻️ Make user required in subscription model (#1585)
This commit is contained in:
parent
01758f81ae
commit
aebea5a41c
5 changed files with 87 additions and 92 deletions
|
@ -0,0 +1,30 @@
|
|||
-- DropForeignKey
|
||||
ALTER TABLE "users" DROP CONSTRAINT "users_subscription_id_fkey";
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX "users_subscription_id_key";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "subscriptions" ADD COLUMN "user_id" TEXT;
|
||||
|
||||
-- Populate user_id in subscriptions table using data from users table
|
||||
UPDATE "subscriptions" s
|
||||
SET "user_id" = u.id
|
||||
FROM "users" u
|
||||
WHERE u."subscription_id" = s.id;
|
||||
|
||||
-- Delete orphaned subscriptions (subscriptions without a corresponding user)
|
||||
DELETE FROM "subscriptions"
|
||||
WHERE "user_id" IS NULL;
|
||||
|
||||
-- Make user_id NOT NULL after populating data
|
||||
ALTER TABLE "subscriptions" ALTER COLUMN "user_id" SET NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "users" DROP COLUMN "subscription_id";
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "subscriptions_user_id_key" ON "subscriptions"("user_id");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "subscriptions" ADD CONSTRAINT "subscriptions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@ -49,7 +49,6 @@ model User {
|
|||
createdAt DateTime @default(now()) @map("created_at")
|
||||
updatedAt DateTime? @updatedAt @map("updated_at")
|
||||
customerId String? @map("customer_id")
|
||||
subscriptionId String? @unique @map("subscription_id")
|
||||
|
||||
comments Comment[]
|
||||
polls Poll[]
|
||||
|
@ -58,8 +57,7 @@ model User {
|
|||
accounts Account[]
|
||||
participants Participant[]
|
||||
paymentMethods PaymentMethod[]
|
||||
|
||||
subscription Subscription? @relation(fields: [subscriptionId], references: [id], onDelete: SetNull)
|
||||
subscription Subscription? @relation("UserToSubscription")
|
||||
|
||||
@@map("users")
|
||||
}
|
||||
|
@ -111,8 +109,9 @@ model Subscription {
|
|||
periodStart DateTime @map("period_start")
|
||||
periodEnd DateTime @map("period_end")
|
||||
cancelAtPeriodEnd Boolean @default(false) @map("cancel_at_period_end")
|
||||
userId String @unique @map("user_id")
|
||||
|
||||
user User?
|
||||
user User @relation("UserToSubscription", fields: [userId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@map("subscriptions")
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue