v0.3.3-pre.003-fix.001
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-store-lib/src/settings.rs
|
||||
// version: 3
|
||||
// version: 4
|
||||
|
||||
const DEFAULT_CONNECT_TIMEOUT_MS: u64 = 10_000;
|
||||
const DEFAULT_MAX_CONNECTIONS: u32 = 8;
|
||||
@@ -153,22 +153,49 @@ impl std::default::Default for PostgresPoolSettings {
|
||||
/// Bounded PostgreSQL bootstrap settings owned by the Store facade.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub struct PostgresBootstrapSettings {
|
||||
auto_migrate: bool,
|
||||
migration_lock_timeout: std::time::Duration,
|
||||
migration_timeout: std::time::Duration,
|
||||
schema_autocreate: bool,
|
||||
schema_autoupdate: bool,
|
||||
}
|
||||
|
||||
impl PostgresBootstrapSettings {
|
||||
/// Creates explicit bootstrap behavior and migration deadlines.
|
||||
/// Creates bootstrap settings using the legacy single migration switch for source compatibility.
|
||||
///
|
||||
/// The supplied value is mapped to both schema auto-creation and schema auto-update. New code should prefer
|
||||
/// [`Self::with_schema_policy`] when these policies need to differ.
|
||||
#[must_use]
|
||||
pub const fn new(auto_migrate: bool, migration_timeout: std::time::Duration, migration_lock_timeout: std::time::Duration) -> Self {
|
||||
return Self { auto_migrate, migration_lock_timeout, migration_timeout };
|
||||
return Self::with_schema_policy(auto_migrate, auto_migrate, migration_timeout, migration_lock_timeout);
|
||||
}
|
||||
|
||||
/// Returns whether pending KSP-owned migrations may be applied during Store opening.
|
||||
/// Creates explicit schema creation/update policy and migration deadlines.
|
||||
#[must_use]
|
||||
pub const fn with_schema_policy(
|
||||
schema_autocreate: bool,
|
||||
schema_autoupdate: bool,
|
||||
migration_timeout: std::time::Duration,
|
||||
migration_lock_timeout: std::time::Duration,
|
||||
) -> Self {
|
||||
return Self { migration_lock_timeout, migration_timeout, schema_autocreate, schema_autoupdate };
|
||||
}
|
||||
|
||||
/// Returns the legacy pending-migration switch, mapped to the schema auto-update policy.
|
||||
#[must_use]
|
||||
pub const fn auto_migrate(&self) -> bool {
|
||||
return self.auto_migrate;
|
||||
return self.schema_autoupdate;
|
||||
}
|
||||
|
||||
/// Returns whether an absent KSP-managed schema may be created or adopted during Store opening.
|
||||
#[must_use]
|
||||
pub const fn schema_autocreate(&self) -> bool {
|
||||
return self.schema_autocreate;
|
||||
}
|
||||
|
||||
/// Returns whether pending migrations and safe additive schema repairs may be applied during Store opening.
|
||||
#[must_use]
|
||||
pub const fn schema_autoupdate(&self) -> bool {
|
||||
return self.schema_autoupdate;
|
||||
}
|
||||
|
||||
/// Returns the bounded wait allowed for the private PostgreSQL migration lock.
|
||||
@@ -205,7 +232,8 @@ impl PostgresBootstrapSettings {
|
||||
|
||||
impl std::default::Default for PostgresBootstrapSettings {
|
||||
fn default() -> Self {
|
||||
return Self::new(
|
||||
return Self::with_schema_policy(
|
||||
true,
|
||||
true,
|
||||
std::time::Duration::from_millis(DEFAULT_MIGRATION_TIMEOUT_MS),
|
||||
std::time::Duration::from_millis(DEFAULT_MIGRATION_LOCK_TIMEOUT_MS),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-store-lib/src/store.rs
|
||||
// version: 4
|
||||
// version: 5
|
||||
|
||||
/// Opaque common Store runtime facade.
|
||||
///
|
||||
@@ -134,7 +134,7 @@ async fn open_postgres(
|
||||
crate::PostgresTlsMode::Disabled => ksp_store_postgres_lib::PostgresBackendTlsMode::Disabled,
|
||||
crate::PostgresTlsMode::VerifyFull => ksp_store_postgres_lib::PostgresBackendTlsMode::VerifyFull,
|
||||
};
|
||||
let backend_settings = ksp_store_postgres_lib::PostgresBackendSettings::new(
|
||||
let backend_settings = ksp_store_postgres_lib::PostgresBackendSettings::with_schema_policy(
|
||||
network.clone(),
|
||||
settings.connection_uri(),
|
||||
pool.max_connections(),
|
||||
@@ -143,7 +143,8 @@ async fn open_postgres(
|
||||
pool.create_timeout(),
|
||||
pool.recycle_timeout(),
|
||||
tls_mode,
|
||||
bootstrap.auto_migrate(),
|
||||
bootstrap.schema_autocreate(),
|
||||
bootstrap.schema_autoupdate(),
|
||||
bootstrap.migration_timeout(),
|
||||
bootstrap.migration_lock_timeout(),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user