fix: Only create the Column Family when it doesn't already exist

This commit is contained in:
Clément Renault 2019-09-19 12:02:34 +02:00
parent 369461e635
commit 9db86f13f3
No known key found for this signature in database
GPG Key ID: 92ADA4E935E71FA4

View File

@ -17,9 +17,12 @@ struct CfTreeInner {
impl CfTree { impl CfTree {
pub fn create(db: Arc<rocksdb::DB>, name: String) -> RocksDbResult<CfTree> { pub fn create(db: Arc<rocksdb::DB>, name: String) -> RocksDbResult<CfTree> {
let mut options = rocksdb::Options::default(); let mut options = rocksdb::Options::default();
options.create_missing_column_families(true); options.create_missing_column_families(true); // this doesn't work
if db.cf_handle(&name).is_none() {
let _cf = db.create_cf(&name, &options)?; let _cf = db.create_cf(&name, &options)?;
}
let index = Arc::new(CfTreeInner { db, name }); let index = Arc::new(CfTreeInner { db, name });
Ok(CfTree { index, sender: None }) Ok(CfTree { index, sender: None })
@ -31,9 +34,12 @@ impl CfTree {
) -> RocksDbResult<(CfTree, Receiver<()>)> ) -> RocksDbResult<(CfTree, Receiver<()>)>
{ {
let mut options = rocksdb::Options::default(); let mut options = rocksdb::Options::default();
options.create_missing_column_families(true); options.create_missing_column_families(true); // this doesn't work
if db.cf_handle(&name).is_none() {
let _cf = db.create_cf(&name, &options)?; let _cf = db.create_cf(&name, &options)?;
}
let index = Arc::new(CfTreeInner { db, name }); let index = Arc::new(CfTreeInner { db, name });
let (sender, receiver) = unbounded(); let (sender, receiver) = unbounded();