Commit Graph
39 Commits
Author SHA1 Message Date
JuliaandAntonio Scandurra 84e1237d45 Add followers table to sqlite scheme for tests
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-02-22 11:22:37 -05:00
Max BrunsfeldandAntonio Scandurra 2f31103b22 Avoid dropping is_complete column for backward compatibility
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-01-11 13:25:02 -08:00
Nathan Sobo 01d051d43d Introduce completed_scan_id to worktree
We need to know the most recent scan id we have actually completed. This is to
handle the case where a guest disconnects when we're in the middle of streaming
worktree entries to them. When they reconnect, they need to report a scan_id
from before we started streaming the entries, because we have no record of when
the stream was interrupted.

Next failure:
SEED=5051 ITERATIONS=1 OPERATIONS=200 cargo test --release --package=collab random -- --nocapture
2023-01-03 18:26:57 -07:00
Max BrunsfeldandJulia Risley 2dd709e002 Implement rejoining projects as guest when rejoining a room
Co-authored-by: Julia Risley <julia@zed.dev>
2022-12-20 15:02:26 -08:00
Antonio Scandurra 7ad68a05d7 Allow nulls in projects.host_connection_{id,server_id}
The server version on stable won't be able to fill values for those
columns when we deploy the migration to preview.

With this commit we're also dropping the unused `worktree_extensions`
and `project_activity_periods` tables. The last version of the server
on stable (0.2.6) doesn't contain any code that accesses those tables.
2022-12-15 11:30:51 +01:00
Antonio Scandurra 21a1f1881d Re-add server_id indices for room_participants/project_collaborators 2022-12-15 09:58:25 +01:00
Max Brunsfeld c50083fff9 Fix stale server queries, use foreign keys from connectionsn to servers 2022-12-14 17:34:24 -08:00
Antonio Scandurra d661abda72 WIP 2022-12-14 18:02:39 +01:00
Antonio Scandurra f7070792a9 Introduce an epoch to ConnectionId and PeerId 2022-12-14 15:55:56 +01:00
Antonio Scandurra 929faa1772 Move creation of room_id index into its own migration 2022-12-13 13:57:41 +01:00
Antonio Scandurra ed8737d08d Always cast connection ids to i32
Postgres doesn't support unsigned types. This also adds indices to
support querying `project_collaborators` and `room_participants`
by connection id.
2022-12-12 11:43:08 +01:00
Antonio Scandurra 8071e4abab Rename connection_lost to answering_connection_lost 2022-12-12 11:43:08 +01:00
Antonio Scandurra bfec91b3ba Introduce random reconnections in the randomized test 2022-12-12 11:43:08 +01:00
Antonio Scandurra 7b91966883 Re-join room when client temporarily loses connection 2022-12-12 11:43:08 +01:00
Antonio Scandurra 1dde768596 Don't drop unregistered column in reconnection support migration
We don't use this column anymore because, when a project is unshared, we
simply remove it from the `projects` table. However, this column is expected
in the stable version of the server and the database is shared between stable
and preview. If we dropped it, stable would start throwing errors.
2022-12-09 08:11:18 +01:00
Antonio Scandurra b2ce835207 Remove project_id foreign key from room_participants 2022-12-05 15:16:06 +01:00
Antonio Scandurra 21f5e6d8a6 Clear stale data on startup
This is a stopgap measure until we introduce reconnection support.
2022-12-02 16:30:00 +01:00
Antonio Scandurra 0ddca2b768 Finish porting remaining db methods to sea-orm 2022-12-02 13:58:23 +01:00
Antonio Scandurra 9d0b5851a3 Make some db tests pass against the new sea-orm implementation 2022-11-30 12:13:16 +01:00
Antonio Scandurra fdbb4bb974 Start on a new db2 module that uses SeaORM 2022-11-29 16:49:04 +01:00
Antonio Scandurra 7b26fceb7b Remove version from Room
We won't need it once we add the per-room lock.
2022-11-18 20:18:48 +01:00
Antonio Scandurra 1e3cb72b20 Revert "Don't replace newer diagnostics with older ones"
This reverts commit b55a13831a.
2022-11-17 16:57:40 +01:00
Antonio Scandurra b55a13831a Don't replace newer diagnostics with older ones 2022-11-17 12:21:51 +01:00
Antonio Scandurra a079fb5626 Move Store::start_language_server to Db 2022-11-16 15:48:26 +01:00
Antonio Scandurra 4bb2f7f7fb Cascade deletes when project is deleted 2022-11-16 10:41:36 +01:00
Antonio Scandurra d212d37a65 Fix syntax error in schema 2022-11-15 18:02:07 +01:00
Antonio Scandurra 2521e230cd Move Store::update_worktree to Db::update_worktree 2022-11-15 17:18:28 +01:00
Antonio ScandurraandNathan Sobo ae2c64f47f Move Store::join_project to Db::join_project
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-15 16:37:51 +01:00
Antonio Scandurra c05e029a58 Start reworking join_project to use the database 2022-11-15 11:44:26 +01:00
Antonio Scandurra 93732c35a6 Determine whether a contact is busy via the database 2022-11-15 10:41:21 +01:00
Antonio ScandurraandNathan Sobo e23a19eed3 Switch to serializable isolation
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-14 19:39:12 +01:00
Antonio Scandurra 1f0709bbef Leave room when connection is dropped 2022-11-14 10:13:36 +01:00
Antonio Scandurra ae0252166b WIP 2022-11-11 19:36:20 +01:00
Antonio Scandurra fb3b16917b WIP: Move Store::leave_room to Db::leave_room 2022-11-11 16:59:54 +01:00
Antonio Scandurra 6406495a37 Remove calls table and use just room_participants 2022-11-11 15:22:04 +01:00
Antonio Scandurra 01127d8733 Start moving Store state into the database 2022-11-11 12:06:43 +01:00
Antonio Scandurra b192ea2bc8 Add schema for reconnection support 2022-11-11 10:41:44 +01:00
Max BrunsfeldandAntonio Scandurra 1a3ad561a0 Get integration tests passing with sqlite
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-11-10 11:03:52 -08:00
Max Brunsfeld 3644a1d2d3 Start work on using sqlite in tests 2022-11-09 19:26:29 -08:00