mirror of
https://github.com/pikami/cosmium.git
synced 2025-12-20 09:20:11 +00:00
Fix database and collection deletion
This commit is contained in:
@@ -54,7 +54,6 @@ func (r *BadgerDataStore) DeleteCollection(databaseId string, collectionId strin
|
||||
generateKey(resourceid.ResourceTypeTrigger, databaseId, collectionId, "") + "/",
|
||||
generateKey(resourceid.ResourceTypeStoredProcedure, databaseId, collectionId, "") + "/",
|
||||
generateKey(resourceid.ResourceTypeUserDefinedFunction, databaseId, collectionId, "") + "/",
|
||||
collectionKey,
|
||||
}
|
||||
for _, prefix := range prefixes {
|
||||
if err := deleteKeysByPrefix(txn, prefix); err != nil {
|
||||
@@ -62,6 +61,8 @@ func (r *BadgerDataStore) DeleteCollection(databaseId string, collectionId strin
|
||||
}
|
||||
}
|
||||
|
||||
deleteKey(txn, collectionKey)
|
||||
|
||||
err := txn.Commit()
|
||||
if err != nil {
|
||||
logger.ErrorLn("Error while committing transaction:", err)
|
||||
|
||||
@@ -43,7 +43,6 @@ func (r *BadgerDataStore) DeleteDatabase(id string) datastore.DataStoreStatus {
|
||||
generateKey(resourceid.ResourceTypeTrigger, id, "", "") + "/",
|
||||
generateKey(resourceid.ResourceTypeStoredProcedure, id, "", "") + "/",
|
||||
generateKey(resourceid.ResourceTypeUserDefinedFunction, id, "", "") + "/",
|
||||
databaseKey,
|
||||
}
|
||||
for _, prefix := range prefixes {
|
||||
if err := deleteKeysByPrefix(txn, prefix); err != nil {
|
||||
@@ -51,6 +50,8 @@ func (r *BadgerDataStore) DeleteDatabase(id string) datastore.DataStoreStatus {
|
||||
}
|
||||
}
|
||||
|
||||
deleteKey(txn, databaseKey)
|
||||
|
||||
err := txn.Commit()
|
||||
if err != nil {
|
||||
logger.ErrorLn("Error while committing transaction:", err)
|
||||
|
||||
@@ -202,3 +202,22 @@ func deleteKeysByPrefix(txn *badger.Txn, prefix string) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func deleteKey(txn *badger.Txn, key string) error {
|
||||
_, err := txn.Get([]byte(key))
|
||||
if err == badger.ErrKeyNotFound {
|
||||
return nil
|
||||
}
|
||||
if err != nil {
|
||||
logger.ErrorLn("Error while checking if key exists:", err)
|
||||
return err
|
||||
}
|
||||
|
||||
err = txn.Delete([]byte(key))
|
||||
if err != nil {
|
||||
logger.ErrorLn("Error while deleting key:", err)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user