diff --git a/app/controllers/projects.php b/app/controllers/projects.php index 89065e7695..d86d5ed268 100644 --- a/app/controllers/projects.php +++ b/app/controllers/projects.php @@ -391,6 +391,9 @@ $utopia->delete('/v1/projects/:projectId') throw new Exception('Failed to remove project from DB', 500); } + // Delete all DBs + $consoleDB->deleteNamespace($project->getUid()); + $response->noContent(); } ); diff --git a/src/Database/Adapter.php b/src/Database/Adapter.php index 3d4809e402..e36ba57e0b 100644 --- a/src/Database/Adapter.php +++ b/src/Database/Adapter.php @@ -88,6 +88,14 @@ abstract class Adapter */ abstract public function createNamespace($namespace); + /** + * Delete Namespace + * + * @param string $namespace + * @return bool + */ + abstract public function deleteNamespace($namespace); + /** * Filter * diff --git a/src/Database/Adapter/Redis.php b/src/Database/Adapter/Redis.php index 431adb0101..9a856748e1 100644 --- a/src/Database/Adapter/Redis.php +++ b/src/Database/Adapter/Redis.php @@ -154,6 +154,17 @@ class Redis extends Adapter return $this->adapter->createNamespace($namespace); } + /** + * Delete Namespace + * + * @param string $namespace + * @return bool + */ + public function deleteNamespace($namespace) + { + return $this->adapter->deleteNamespace($namespace); + } + /** * @param array $options * @return array diff --git a/src/Database/Database.php b/src/Database/Database.php index 0abdfafe7f..a4e57584fe 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -95,6 +95,17 @@ class Database return $this->adapter->createNamespace($namespace); } + /** + * Delete Namespace + * + * @param int $namespace + * @return bool + */ + public function deleteNamespace($namespace) + { + return $this->adapter->deleteNamespace($namespace); + } + /** * @param array $options * @return Document[]|Document