mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-02-23 19:15:31 +08:00
Differentiate between keys and dbs
This commit is contained in:
parent
e9fc827c82
commit
0b757a5f70
@ -8,11 +8,15 @@ use crate::error::FeatureNotEnabledError;
|
|||||||
use crate::Result;
|
use crate::Result;
|
||||||
|
|
||||||
/// The number of database used by features
|
/// The number of database used by features
|
||||||
const NUMBER_OF_DATABASES: u32 = 2;
|
const NUMBER_OF_DATABASES: u32 = 1;
|
||||||
/// Database const names for the `FeatureData`.
|
/// Database const names for the `FeatureData`.
|
||||||
mod db_name {
|
mod db_name {
|
||||||
pub const EXPERIMENTAL_FEATURES: &str = "experimental-features";
|
pub const EXPERIMENTAL_FEATURES: &str = "experimental-features";
|
||||||
const NETWORK: &str = "network";
|
}
|
||||||
|
|
||||||
|
mod db_keys {
|
||||||
|
pub const EXPERIMENTAL_FEATURES: &str = "experimental-features";
|
||||||
|
pub const NETWORK: &str = "network";
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -104,7 +108,7 @@ impl FeatureData {
|
|||||||
env.create_database(wtxn, Some(db_name::EXPERIMENTAL_FEATURES))?;
|
env.create_database(wtxn, Some(db_name::EXPERIMENTAL_FEATURES))?;
|
||||||
|
|
||||||
let persisted_features: RuntimeTogglableFeatures =
|
let persisted_features: RuntimeTogglableFeatures =
|
||||||
runtime_features_db.get(wtxn, db_name::EXPERIMENTAL_FEATURES)?.unwrap_or_default();
|
runtime_features_db.get(wtxn, db_keys::EXPERIMENTAL_FEATURES)?.unwrap_or_default();
|
||||||
let InstanceTogglableFeatures { metrics, logs_route, contains_filter } = instance_features;
|
let InstanceTogglableFeatures { metrics, logs_route, contains_filter } = instance_features;
|
||||||
let runtime = Arc::new(RwLock::new(RuntimeTogglableFeatures {
|
let runtime = Arc::new(RwLock::new(RuntimeTogglableFeatures {
|
||||||
metrics: metrics || persisted_features.metrics,
|
metrics: metrics || persisted_features.metrics,
|
||||||
@ -114,7 +118,7 @@ impl FeatureData {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
let network_db = runtime_features_db.remap_data_type::<SerdeJson<Network>>();
|
let network_db = runtime_features_db.remap_data_type::<SerdeJson<Network>>();
|
||||||
let network: Network = network_db.get(&txn, db_name::NETWORK)?.unwrap_or_default();
|
let network: Network = network_db.get(wtxn, db_keys::NETWORK)?.unwrap_or_default();
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
persisted: runtime_features_db,
|
persisted: runtime_features_db,
|
||||||
@ -128,7 +132,7 @@ impl FeatureData {
|
|||||||
mut wtxn: RwTxn,
|
mut wtxn: RwTxn,
|
||||||
features: RuntimeTogglableFeatures,
|
features: RuntimeTogglableFeatures,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
self.persisted.put(&mut wtxn, db_name::EXPERIMENTAL_FEATURES, &features)?;
|
self.persisted.put(&mut wtxn, db_keys::EXPERIMENTAL_FEATURES, &features)?;
|
||||||
wtxn.commit()?;
|
wtxn.commit()?;
|
||||||
|
|
||||||
// safe to unwrap, the lock will only fail if:
|
// safe to unwrap, the lock will only fail if:
|
||||||
@ -153,7 +157,7 @@ impl FeatureData {
|
|||||||
pub fn put_network(&self, mut wtxn: RwTxn, new_network: Network) -> Result<()> {
|
pub fn put_network(&self, mut wtxn: RwTxn, new_network: Network) -> Result<()> {
|
||||||
self.persisted.remap_data_type::<SerdeJson<Network>>().put(
|
self.persisted.remap_data_type::<SerdeJson<Network>>().put(
|
||||||
&mut wtxn,
|
&mut wtxn,
|
||||||
db_name::NETWORK,
|
db_keys::NETWORK,
|
||||||
&new_network,
|
&new_network,
|
||||||
)?;
|
)?;
|
||||||
wtxn.commit()?;
|
wtxn.commit()?;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user