mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-08 14:02:55 +00:00
## Problem Spun off from https://github.com/neondatabase/neon/pull/6394 -- this PR is just the persistence parts and the changes that enable it to work nicely ## Summary of changes - Revert #6444 and #6450 - In neon_local, start a vanilla postgres instance for the attachment service to use. - Adopt `diesel` crate for database access in attachment service. This uses raw SQL migrations as the source of truth for the schema, so it's a soft dependency: we can switch libraries pretty easily. - Rewrite persistence.rs to use postgres (via diesel) instead of JSON. - Preserve JSON read+write at startup and shutdown: this enables using the JSON format in compatibility tests, so that we don't have to commit to our DB schema yet. - In neon_local, run database creation + migrations before starting attachment service - Run the initial reconciliation in Service::spawn in the background, so that the pageserver + attachment service don't get stuck waiting for each other to start, when restarting both together in a test.
46 lines
1.2 KiB
TOML
46 lines
1.2 KiB
TOML
[package]
|
|
name = "control_plane"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
async-trait.workspace = true
|
|
camino.workspace = true
|
|
clap.workspace = true
|
|
comfy-table.workspace = true
|
|
diesel = { version = "2.1.4", features = ["postgres"]}
|
|
diesel_migrations = { version = "2.1.0", features = ["postgres"]}
|
|
futures.workspace = true
|
|
git-version.workspace = true
|
|
nix.workspace = true
|
|
once_cell.workspace = true
|
|
postgres.workspace = true
|
|
hex.workspace = true
|
|
hyper.workspace = true
|
|
regex.workspace = true
|
|
reqwest = { workspace = true, features = ["blocking", "json"] }
|
|
scopeguard.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
serde_with.workspace = true
|
|
tar.workspace = true
|
|
thiserror.workspace = true
|
|
toml.workspace = true
|
|
tokio.workspace = true
|
|
tokio-postgres.workspace = true
|
|
tokio-util.workspace = true
|
|
url.workspace = true
|
|
pageserver_api.workspace = true
|
|
pageserver_client.workspace = true
|
|
postgres_backend.workspace = true
|
|
safekeeper_api.workspace = true
|
|
postgres_connection.workspace = true
|
|
storage_broker.workspace = true
|
|
utils.workspace = true
|
|
|
|
compute_api.workspace = true
|
|
workspace_hack.workspace = true
|
|
tracing.workspace = true
|