From 3c098dc78ea95465358b741b7cd81c7be47fdb5f Mon Sep 17 00:00:00 2001 From: lukinovec Date: Tue, 9 May 2023 15:13:10 +0200 Subject: [PATCH] Add Postgres bootstrapper --- .../PostgresTenancyBootstrapper.php | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/Bootstrappers/Integrations/PostgresTenancyBootstrapper.php diff --git a/src/Bootstrappers/Integrations/PostgresTenancyBootstrapper.php b/src/Bootstrappers/Integrations/PostgresTenancyBootstrapper.php new file mode 100644 index 00000000..0a795ada --- /dev/null +++ b/src/Bootstrappers/Integrations/PostgresTenancyBootstrapper.php @@ -0,0 +1,41 @@ +originalCentralConnectionConfig = $config->get('database.connections.central'); + $this->originalPostgresConfig = $config->get('database.connections.pgsql'); + } + + public function bootstrap(Tenant $tenant): void + { + $this->database->purge('central'); + + $this->config->set('database.connections.pgsql.username', $tenant->getTenantKey()); + $this->config->set('database.connections.pgsql.password', $tenant->database()->getPassword() ?? 'password'); + $this->config->set('database.connections.central', $this->config->get('database.connections.pgsql')); + } + + public function revert(): void + { + $this->database->purge('central'); + + $this->config->set('database.connections.central', $this->originalCentralConnectionConfig); + $this->config->set('database.connections.pgsql', $this->originalPostgresConfig); + } +}