Julia and Antonio 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 Brunsfeld and Antonio 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 Brunsfeld and Julia 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 Scandurra and Nathan 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 Scandurra and Nathan 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 Brunsfeld and Antonio 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