Fix syntax error in schema

Antonio Scandurra created

Change summary

crates/collab/migrations.sqlite/20221109000000_test_schema.sql   |  2 
crates/collab/migrations/20221111092550_reconnection_support.sql | 40 +
2 files changed, 22 insertions(+), 20 deletions(-)

Detailed changes

crates/collab/migrations.sqlite/20221109000000_test_schema.sql 🔗

@@ -70,7 +70,7 @@ CREATE TABLE "worktree_entries" (
     "mtime_nanos" INTEGER NOT NULL,
     "is_symlink" BOOL NOT NULL,
     "is_ignored" BOOL NOT NULL,
-    PRIMARY KEY(project_id, worktree_id, id)
+    PRIMARY KEY(project_id, worktree_id, id),
     FOREIGN KEY(project_id, worktree_id) REFERENCES worktrees (project_id, id)
 );
 CREATE INDEX "index_worktree_entries_on_project_id_and_worktree_id" ON "worktree_entries" ("project_id", "worktree_id");

crates/collab/migrations/20221111092550_reconnection_support.sql 🔗

@@ -9,17 +9,6 @@ ALTER TABLE "projects"
     ADD "host_connection_id" INTEGER,
     DROP COLUMN "unregistered";
 
-CREATE TABLE "project_collaborators" (
-    "id" SERIAL PRIMARY KEY,
-    "project_id" INTEGER NOT NULL REFERENCES projects (id) ON DELETE CASCADE,
-    "connection_id" INTEGER NOT NULL,
-    "user_id" INTEGER NOT NULL,
-    "replica_id" INTEGER NOT NULL,
-    "is_host" BOOLEAN NOT NULL
-);
-CREATE INDEX "index_project_collaborators_on_project_id" ON "project_collaborators" ("project_id");
-CREATE UNIQUE INDEX "index_project_collaborators_on_project_id_and_replica_id" ON "project_collaborators" ("project_id", "replica_id");
-
 CREATE TABLE "worktrees" (
     "id" INTEGER NOT NULL,
     "project_id" INTEGER NOT NULL REFERENCES projects (id),
@@ -34,8 +23,8 @@ CREATE INDEX "index_worktrees_on_project_id" ON "worktrees" ("project_id");
 
 CREATE TABLE "worktree_entries" (
     "id" INTEGER NOT NULL,
-    "project_id" INTEGER NOT NULL REFERENCES projects (id),
-    "worktree_id" INTEGER NOT NULL REFERENCES worktrees (id),
+    "project_id" INTEGER NOT NULL,
+    "worktree_id" INTEGER NOT NULL,
     "is_dir" BOOL NOT NULL,
     "path" VARCHAR NOT NULL,
     "inode" INTEGER NOT NULL,
@@ -43,18 +32,20 @@ CREATE TABLE "worktree_entries" (
     "mtime_nanos" INTEGER NOT NULL,
     "is_symlink" BOOL NOT NULL,
     "is_ignored" BOOL NOT NULL,
-    PRIMARY KEY(project_id, worktree_id, id)
+    PRIMARY KEY(project_id, worktree_id, id),
+    FOREIGN KEY(project_id, worktree_id) REFERENCES worktrees (project_id, id)
 );
 CREATE INDEX "index_worktree_entries_on_project_id_and_worktree_id" ON "worktree_entries" ("project_id", "worktree_id");
 
 CREATE TABLE "worktree_diagnostic_summaries" (
     "path" VARCHAR NOT NULL,
-    "project_id" INTEGER NOT NULL REFERENCES projects (id),
-    "worktree_id" INTEGER NOT NULL REFERENCES worktrees (id),
+    "project_id" INTEGER NOT NULL,
+    "worktree_id" INTEGER NOT NULL,
     "language_server_id" INTEGER NOT NULL,
     "error_count" INTEGER NOT NULL,
     "warning_count" INTEGER NOT NULL,
-    PRIMARY KEY(project_id, worktree_id, path)
+    PRIMARY KEY(project_id, worktree_id, path),
+    FOREIGN KEY(project_id, worktree_id) REFERENCES worktrees (project_id, id)
 );
 CREATE INDEX "index_worktree_diagnostic_summaries_on_project_id_and_worktree_id" ON "worktree_diagnostic_summaries" ("project_id", "worktree_id");
 
@@ -66,8 +57,19 @@ CREATE TABLE "language_servers" (
 );
 CREATE INDEX "index_language_servers_on_project_id" ON "language_servers" ("project_id");
 
-CREATE TABLE IF NOT EXISTS "room_participants" (
-    "id" SERIAL PRIMARY KEY,
+CREATE TABLE "project_collaborators" (
+    "id" INTEGER PRIMARY KEY,
+    "project_id" INTEGER NOT NULL REFERENCES projects (id),
+    "connection_id" INTEGER NOT NULL,
+    "user_id" INTEGER NOT NULL,
+    "replica_id" INTEGER NOT NULL,
+    "is_host" BOOLEAN NOT NULL
+);
+CREATE INDEX "index_project_collaborators_on_project_id" ON "project_collaborators" ("project_id");
+CREATE UNIQUE INDEX "index_project_collaborators_on_project_id_and_replica_id" ON "project_collaborators" ("project_id", "replica_id");
+
+CREATE TABLE "room_participants" (
+    "id" INTEGER PRIMARY KEY,
     "room_id" INTEGER NOT NULL REFERENCES rooms (id),
     "user_id" INTEGER NOT NULL REFERENCES users (id),
     "answering_connection_id" INTEGER,