Skip to content

Commit bcbd212

Browse files
New postgres db migration.
1 parent 999b944 commit bcbd212

File tree

2 files changed

+165
-0
lines changed

2 files changed

+165
-0
lines changed
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
-- CreateEnum
2+
CREATE TYPE "SubscriptionType" AS ENUM ('web', 'fcm');
3+
4+
-- CreateTable
5+
CREATE TABLE "reddit_posts" (
6+
"id" SERIAL NOT NULL,
7+
"title" VARCHAR(350) NOT NULL,
8+
"author" TEXT NOT NULL,
9+
"subreddit" TEXT NOT NULL,
10+
"url" VARCHAR(350) NOT NULL,
11+
"type" VARCHAR(50) NOT NULL DEFAULT 'reddit',
12+
"body" TEXT,
13+
"body_html" TEXT,
14+
"upvotes" INTEGER NOT NULL DEFAULT 0,
15+
"downvotes" INTEGER NOT NULL DEFAULT 0,
16+
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
17+
"posted_at" TIMESTAMP(3) NOT NULL,
18+
19+
CONSTRAINT "reddit_posts_pkey" PRIMARY KEY ("id")
20+
);
21+
22+
-- CreateTable
23+
CREATE TABLE "subscriptions" (
24+
"id" SERIAL NOT NULL,
25+
"ip_address" VARCHAR(150) NOT NULL,
26+
"type" "SubscriptionType" NOT NULL DEFAULT 'web',
27+
"endpoint" VARCHAR(350) NOT NULL,
28+
"keys" JSONB,
29+
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
30+
31+
CONSTRAINT "subscriptions_pkey" PRIMARY KEY ("id")
32+
);
33+
34+
-- CreateTable
35+
CREATE TABLE "locations" (
36+
"id" SERIAL NOT NULL,
37+
"ip_address" VARCHAR(150) NOT NULL,
38+
"accuracy" DOUBLE PRECISION,
39+
"altitude" DOUBLE PRECISION,
40+
"altitude_accuracy" DOUBLE PRECISION,
41+
"heading" DOUBLE PRECISION,
42+
"latitude" DOUBLE PRECISION,
43+
"longitude" DOUBLE PRECISION,
44+
"speed" DOUBLE PRECISION,
45+
"mocked" BOOLEAN NOT NULL,
46+
"timestamp" BIGINT,
47+
"city" VARCHAR(150),
48+
"country" VARCHAR(150),
49+
"district" VARCHAR(150),
50+
"formatted_address" TEXT,
51+
"iso_country_code" VARCHAR(10),
52+
"name" VARCHAR(150),
53+
"postal_code" VARCHAR(20),
54+
"region" VARCHAR(150),
55+
"street" VARCHAR(150),
56+
"street_number" VARCHAR(50),
57+
"subregion" VARCHAR(150),
58+
"timezone" VARCHAR(100),
59+
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
60+
"subscriptionId" INTEGER NOT NULL,
61+
62+
CONSTRAINT "locations_pkey" PRIMARY KEY ("id")
63+
);
64+
65+
-- CreateTable
66+
CREATE TABLE "reddit_messages" (
67+
"id" SERIAL NOT NULL,
68+
"reddit_id" TEXT NOT NULL,
69+
"type" TEXT NOT NULL,
70+
"author" TEXT NOT NULL,
71+
"content" TEXT NOT NULL,
72+
"body_html" TEXT,
73+
"subreddit" TEXT,
74+
"context_url" TEXT,
75+
"parent_id" TEXT,
76+
"message_type" TEXT,
77+
"is_read" BOOLEAN NOT NULL DEFAULT false,
78+
"is_subreddit_mod_mail" BOOLEAN NOT NULL DEFAULT false,
79+
"is_internal" BOOLEAN NOT NULL DEFAULT false,
80+
"raw_data" JSONB,
81+
"created_at" TIMESTAMP(3) NOT NULL,
82+
"received_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
83+
84+
CONSTRAINT "reddit_messages_pkey" PRIMARY KEY ("id")
85+
);
86+
87+
-- CreateTable
88+
CREATE TABLE "error_reports" (
89+
"id" TEXT NOT NULL,
90+
"message" TEXT NOT NULL,
91+
"stack" TEXT,
92+
"platform" TEXT,
93+
"isFatal" BOOLEAN,
94+
"errorInfo" JSONB,
95+
"payload" JSONB NOT NULL,
96+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
97+
98+
CONSTRAINT "error_reports_pkey" PRIMARY KEY ("id")
99+
);
100+
101+
-- CreateIndex
102+
CREATE UNIQUE INDEX "reddit_posts_url_key" ON "reddit_posts"("url");
103+
104+
-- CreateIndex
105+
CREATE INDEX "reddit_posts_subreddit_idx" ON "reddit_posts"("subreddit");
106+
107+
-- CreateIndex
108+
CREATE INDEX "reddit_posts_author_idx" ON "reddit_posts"("author");
109+
110+
-- CreateIndex
111+
CREATE INDEX "reddit_posts_posted_at_idx" ON "reddit_posts"("posted_at");
112+
113+
-- CreateIndex
114+
CREATE UNIQUE INDEX "subscriptions_endpoint_key" ON "subscriptions"("endpoint");
115+
116+
-- CreateIndex
117+
CREATE UNIQUE INDEX "subscriptions_endpoint_type_keys_key" ON "subscriptions"("endpoint", "type", "keys");
118+
119+
-- CreateIndex
120+
CREATE INDEX "locations_subscriptionId_idx" ON "locations"("subscriptionId");
121+
122+
-- CreateIndex
123+
CREATE INDEX "locations_timestamp_idx" ON "locations"("timestamp");
124+
125+
-- CreateIndex
126+
CREATE INDEX "locations_latitude_longitude_idx" ON "locations"("latitude", "longitude");
127+
128+
-- CreateIndex
129+
CREATE UNIQUE INDEX "reddit_messages_reddit_id_key" ON "reddit_messages"("reddit_id");
130+
131+
-- CreateIndex
132+
CREATE INDEX "reddit_messages_author_idx" ON "reddit_messages"("author");
133+
134+
-- CreateIndex
135+
CREATE INDEX "reddit_messages_created_at_idx" ON "reddit_messages"("created_at");
136+
137+
-- CreateIndex
138+
CREATE INDEX "reddit_messages_is_read_idx" ON "reddit_messages"("is_read");
139+
140+
-- CreateIndex
141+
CREATE INDEX "reddit_messages_subreddit_idx" ON "reddit_messages"("subreddit");
142+
143+
-- CreateIndex
144+
CREATE INDEX "reddit_messages_parent_id_idx" ON "reddit_messages"("parent_id");
145+
146+
-- CreateIndex
147+
CREATE INDEX "error_reports_createdAt_idx" ON "error_reports"("createdAt");
148+
149+
-- CreateIndex
150+
CREATE INDEX "error_reports_platform_idx" ON "error_reports"("platform");
151+
152+
-- CreateIndex
153+
CREATE INDEX "error_reports_isFatal_idx" ON "error_reports"("isFatal");
154+
155+
-- CreateIndex
156+
CREATE INDEX "error_reports_message_idx" ON "error_reports"("message");
157+
158+
-- CreateIndex
159+
CREATE INDEX "error_reports_stack_idx" ON "error_reports"("stack");
160+
161+
-- AddForeignKey
162+
ALTER TABLE "locations" ADD CONSTRAINT "locations_subscriptionId_fkey" FOREIGN KEY ("subscriptionId") REFERENCES "subscriptions"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

prisma/migrations/migration_lock.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Please do not edit this file manually
2+
# It should be added in your version-control system (e.g., Git)
3+
provider = "postgresql"

0 commit comments

Comments
 (0)