|
| 1 | +--- /Users/ilakovac/dev/open-saas/template-test/tools/../../template-test/base-app/app/migrations/20251007102522_init/migration.sql |
| 2 | ++++ template-test/app/migrations/20251007102522_init/migration.sql |
| 3 | +@@ -0,0 +1,172 @@ |
| 4 | ++-- CreateTable |
| 5 | ++CREATE TABLE "User" ( |
| 6 | ++ "id" TEXT NOT NULL, |
| 7 | ++ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 8 | ++ "email" TEXT, |
| 9 | ++ "username" TEXT, |
| 10 | ++ "isAdmin" BOOLEAN NOT NULL DEFAULT false, |
| 11 | ++ "paymentProcessorUserId" TEXT, |
| 12 | ++ "lemonSqueezyCustomerPortalUrl" TEXT, |
| 13 | ++ "subscriptionStatus" TEXT, |
| 14 | ++ "subscriptionPlan" TEXT, |
| 15 | ++ "datePaid" TIMESTAMP(3), |
| 16 | ++ "credits" INTEGER NOT NULL DEFAULT 3, |
| 17 | ++ |
| 18 | ++ CONSTRAINT "User_pkey" PRIMARY KEY ("id") |
| 19 | ++); |
| 20 | ++ |
| 21 | ++-- CreateTable |
| 22 | ++CREATE TABLE "GptResponse" ( |
| 23 | ++ "id" TEXT NOT NULL, |
| 24 | ++ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 25 | ++ "updatedAt" TIMESTAMP(3) NOT NULL, |
| 26 | ++ "userId" TEXT NOT NULL, |
| 27 | ++ "content" TEXT NOT NULL, |
| 28 | ++ |
| 29 | ++ CONSTRAINT "GptResponse_pkey" PRIMARY KEY ("id") |
| 30 | ++); |
| 31 | ++ |
| 32 | ++-- CreateTable |
| 33 | ++CREATE TABLE "Task" ( |
| 34 | ++ "id" TEXT NOT NULL, |
| 35 | ++ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 36 | ++ "userId" TEXT NOT NULL, |
| 37 | ++ "description" TEXT NOT NULL, |
| 38 | ++ "time" TEXT NOT NULL DEFAULT '1', |
| 39 | ++ "isDone" BOOLEAN NOT NULL DEFAULT false, |
| 40 | ++ |
| 41 | ++ CONSTRAINT "Task_pkey" PRIMARY KEY ("id") |
| 42 | ++); |
| 43 | ++ |
| 44 | ++-- CreateTable |
| 45 | ++CREATE TABLE "File" ( |
| 46 | ++ "id" TEXT NOT NULL, |
| 47 | ++ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 48 | ++ "userId" TEXT NOT NULL, |
| 49 | ++ "name" TEXT NOT NULL, |
| 50 | ++ "type" TEXT NOT NULL, |
| 51 | ++ "key" TEXT NOT NULL, |
| 52 | ++ "uploadUrl" TEXT NOT NULL, |
| 53 | ++ |
| 54 | ++ CONSTRAINT "File_pkey" PRIMARY KEY ("id") |
| 55 | ++); |
| 56 | ++ |
| 57 | ++-- CreateTable |
| 58 | ++CREATE TABLE "DailyStats" ( |
| 59 | ++ "id" SERIAL NOT NULL, |
| 60 | ++ "date" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 61 | ++ "totalViews" INTEGER NOT NULL DEFAULT 0, |
| 62 | ++ "prevDayViewsChangePercent" TEXT NOT NULL DEFAULT '0', |
| 63 | ++ "userCount" INTEGER NOT NULL DEFAULT 0, |
| 64 | ++ "paidUserCount" INTEGER NOT NULL DEFAULT 0, |
| 65 | ++ "userDelta" INTEGER NOT NULL DEFAULT 0, |
| 66 | ++ "paidUserDelta" INTEGER NOT NULL DEFAULT 0, |
| 67 | ++ "totalRevenue" DOUBLE PRECISION NOT NULL DEFAULT 0, |
| 68 | ++ "totalProfit" DOUBLE PRECISION NOT NULL DEFAULT 0, |
| 69 | ++ |
| 70 | ++ CONSTRAINT "DailyStats_pkey" PRIMARY KEY ("id") |
| 71 | ++); |
| 72 | ++ |
| 73 | ++-- CreateTable |
| 74 | ++CREATE TABLE "PageViewSource" ( |
| 75 | ++ "name" TEXT NOT NULL, |
| 76 | ++ "date" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 77 | ++ "dailyStatsId" INTEGER, |
| 78 | ++ "visitors" INTEGER NOT NULL, |
| 79 | ++ |
| 80 | ++ CONSTRAINT "PageViewSource_pkey" PRIMARY KEY ("date","name") |
| 81 | ++); |
| 82 | ++ |
| 83 | ++-- CreateTable |
| 84 | ++CREATE TABLE "Logs" ( |
| 85 | ++ "id" SERIAL NOT NULL, |
| 86 | ++ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 87 | ++ "message" TEXT NOT NULL, |
| 88 | ++ "level" TEXT NOT NULL, |
| 89 | ++ |
| 90 | ++ CONSTRAINT "Logs_pkey" PRIMARY KEY ("id") |
| 91 | ++); |
| 92 | ++ |
| 93 | ++-- CreateTable |
| 94 | ++CREATE TABLE "ContactFormMessage" ( |
| 95 | ++ "id" TEXT NOT NULL, |
| 96 | ++ "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 97 | ++ "userId" TEXT NOT NULL, |
| 98 | ++ "content" TEXT NOT NULL, |
| 99 | ++ "isRead" BOOLEAN NOT NULL DEFAULT false, |
| 100 | ++ "repliedAt" TIMESTAMP(3), |
| 101 | ++ |
| 102 | ++ CONSTRAINT "ContactFormMessage_pkey" PRIMARY KEY ("id") |
| 103 | ++); |
| 104 | ++ |
| 105 | ++-- CreateTable |
| 106 | ++CREATE TABLE "Auth" ( |
| 107 | ++ "id" TEXT NOT NULL, |
| 108 | ++ "userId" TEXT, |
| 109 | ++ |
| 110 | ++ CONSTRAINT "Auth_pkey" PRIMARY KEY ("id") |
| 111 | ++); |
| 112 | ++ |
| 113 | ++-- CreateTable |
| 114 | ++CREATE TABLE "AuthIdentity" ( |
| 115 | ++ "providerName" TEXT NOT NULL, |
| 116 | ++ "providerUserId" TEXT NOT NULL, |
| 117 | ++ "providerData" TEXT NOT NULL DEFAULT '{}', |
| 118 | ++ "authId" TEXT NOT NULL, |
| 119 | ++ |
| 120 | ++ CONSTRAINT "AuthIdentity_pkey" PRIMARY KEY ("providerName","providerUserId") |
| 121 | ++); |
| 122 | ++ |
| 123 | ++-- CreateTable |
| 124 | ++CREATE TABLE "Session" ( |
| 125 | ++ "id" TEXT NOT NULL, |
| 126 | ++ "expiresAt" TIMESTAMP(3) NOT NULL, |
| 127 | ++ "userId" TEXT NOT NULL, |
| 128 | ++ |
| 129 | ++ CONSTRAINT "Session_pkey" PRIMARY KEY ("id") |
| 130 | ++); |
| 131 | ++ |
| 132 | ++-- CreateIndex |
| 133 | ++CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); |
| 134 | ++ |
| 135 | ++-- CreateIndex |
| 136 | ++CREATE UNIQUE INDEX "User_username_key" ON "User"("username"); |
| 137 | ++ |
| 138 | ++-- CreateIndex |
| 139 | ++CREATE UNIQUE INDEX "User_paymentProcessorUserId_key" ON "User"("paymentProcessorUserId"); |
| 140 | ++ |
| 141 | ++-- CreateIndex |
| 142 | ++CREATE UNIQUE INDEX "DailyStats_date_key" ON "DailyStats"("date"); |
| 143 | ++ |
| 144 | ++-- CreateIndex |
| 145 | ++CREATE UNIQUE INDEX "Auth_userId_key" ON "Auth"("userId"); |
| 146 | ++ |
| 147 | ++-- CreateIndex |
| 148 | ++CREATE UNIQUE INDEX "Session_id_key" ON "Session"("id"); |
| 149 | ++ |
| 150 | ++-- CreateIndex |
| 151 | ++CREATE INDEX "Session_userId_idx" ON "Session"("userId"); |
| 152 | ++ |
| 153 | ++-- AddForeignKey |
| 154 | ++ALTER TABLE "GptResponse" ADD CONSTRAINT "GptResponse_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; |
| 155 | ++ |
| 156 | ++-- AddForeignKey |
| 157 | ++ALTER TABLE "Task" ADD CONSTRAINT "Task_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; |
| 158 | ++ |
| 159 | ++-- AddForeignKey |
| 160 | ++ALTER TABLE "File" ADD CONSTRAINT "File_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; |
| 161 | ++ |
| 162 | ++-- AddForeignKey |
| 163 | ++ALTER TABLE "PageViewSource" ADD CONSTRAINT "PageViewSource_dailyStatsId_fkey" FOREIGN KEY ("dailyStatsId") REFERENCES "DailyStats"("id") ON DELETE SET NULL ON UPDATE CASCADE; |
| 164 | ++ |
| 165 | ++-- AddForeignKey |
| 166 | ++ALTER TABLE "ContactFormMessage" ADD CONSTRAINT "ContactFormMessage_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; |
| 167 | ++ |
| 168 | ++-- AddForeignKey |
| 169 | ++ALTER TABLE "Auth" ADD CONSTRAINT "Auth_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
| 170 | ++ |
| 171 | ++-- AddForeignKey |
| 172 | ++ALTER TABLE "AuthIdentity" ADD CONSTRAINT "AuthIdentity_authId_fkey" FOREIGN KEY ("authId") REFERENCES "Auth"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
| 173 | ++ |
| 174 | ++-- AddForeignKey |
| 175 | ++ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "Auth"("id") ON DELETE CASCADE ON UPDATE CASCADE; |
0 commit comments