1DROP TABLE "channel_messages";
2DROP TABLE "channel_memberships";
3DROP TABLE "org_memberships";
4DROP TABLE "orgs";
5DROP TABLE "channels";
6
7CREATE TABLE "channels" (
8 "id" SERIAL PRIMARY KEY,
9 "name" VARCHAR NOT NULL,
10 "created_at" TIMESTAMP NOT NULL DEFAULT now()
11);
12
13CREATE TABLE "channel_paths" (
14 "id_path" VARCHAR NOT NULL PRIMARY KEY,
15 "channel_id" INTEGER NOT NULL REFERENCES channels (id) ON DELETE CASCADE
16);
17CREATE INDEX "index_channel_paths_on_channel_id" ON "channel_paths" ("channel_id");
18
19CREATE TABLE "channel_members" (
20 "id" SERIAL PRIMARY KEY,
21 "channel_id" INTEGER NOT NULL REFERENCES channels (id) ON DELETE CASCADE,
22 "user_id" INTEGER NOT NULL REFERENCES users (id) ON DELETE CASCADE,
23 "admin" BOOLEAN NOT NULL DEFAULT false,
24 "accepted" BOOLEAN NOT NULL DEFAULT false,
25 "updated_at" TIMESTAMP NOT NULL DEFAULT now()
26);
27
28CREATE UNIQUE INDEX "index_channel_members_on_channel_id_and_user_id" ON "channel_members" ("channel_id", "user_id");
29
30ALTER TABLE rooms ADD COLUMN "channel_id" INTEGER REFERENCES channels (id) ON DELETE CASCADE;