From 05c5d6bd2762afdda1abe79bb4cbe86bdbac24ca Mon Sep 17 00:00:00 2001 From: Laurynas Geigalas Date: Fri, 28 Sep 2018 17:19:27 +0300 Subject: [PATCH 1/7] Add support for custom database drivers --- .../Database/DatabaseDriverFactory.php | 31 ++++++++ .../Webserver/Database/DatabaseGenerator.php | 29 +------- src/Providers/TenancyProvider.php | 1 + .../Tenants/DatabaseDriverProvider.php | 44 +++++++++++ .../Database/DatabaseDriverFactoryTest.php | 74 +++++++++++++++++++ 5 files changed, 153 insertions(+), 26 deletions(-) create mode 100644 src/Generators/Webserver/Database/DatabaseDriverFactory.php create mode 100644 src/Providers/Tenants/DatabaseDriverProvider.php create mode 100644 tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php diff --git a/src/Generators/Webserver/Database/DatabaseDriverFactory.php b/src/Generators/Webserver/Database/DatabaseDriverFactory.php new file mode 100644 index 00000000..464c02db --- /dev/null +++ b/src/Generators/Webserver/Database/DatabaseDriverFactory.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + * + * @see https://laravel-tenancy.com + * @see https://github.com/hyn/multi-tenant + */ + +namespace Hyn\Tenancy\Generators\Webserver\Database; + +use Hyn\Tenancy\Exceptions\GeneratorFailedException; + +class DatabaseDriverFactory +{ + public function create($driver = 'mysql') + { + $drivers = app('tenancy.db.drivers'); + + if (!in_array($driver, $drivers->keys()->toArray())) { + throw new GeneratorFailedException("Could not generate database for driver $driver"); + } + + return new $drivers[$driver](); + } +} diff --git a/src/Generators/Webserver/Database/DatabaseGenerator.php b/src/Generators/Webserver/Database/DatabaseGenerator.php index 0c404864..e6bf1bbe 100644 --- a/src/Generators/Webserver/Database/DatabaseGenerator.php +++ b/src/Generators/Webserver/Database/DatabaseGenerator.php @@ -55,29 +55,6 @@ public function subscribe(Dispatcher $events) $events->listen(Events\Websites\Deleted::class, [$this, 'deleted']); } - /** - * @param array $config - * @return \Hyn\Tenancy\Contracts\Webserver\DatabaseGenerator - * @throws GeneratorFailedException - */ - protected function driver(array $config) - { - $driver = Arr::get($config, 'driver', 'mysql'); - - switch ($driver) { - case 'pgsql': - return $this->mode === Connection::DIVISION_MODE_SEPARATE_SCHEMA - ? new Drivers\PostgresSchema - : new Drivers\PostgreSQL; - break; - case 'mysql': - return new Drivers\MariaDB; - break; - default: - throw new GeneratorFailedException("Could not generate database for driver $driver"); - } - } - /** * @param Events\Websites\Created $event * @throws GeneratorFailedException @@ -103,7 +80,7 @@ public function created(Events\Websites\Created $event) new Events\Database\Creating($config, $event->website) ); - if (!$this->driver($config)->created($event, $config, $this->connection)) { + if (!app(DatabaseDriverFactory::class)->create($config['driver'])->created($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not generate database {$config['database']}, one of the statements failed."); } @@ -151,7 +128,7 @@ public function deleted(Events\Websites\Deleted $event) new Events\Database\Deleting($config, $event->website) ); - if (!$this->driver($config)->deleted($event, $config, $this->connection)) { + if (!app(DatabaseDriverFactory::class)->create($config['driver'])->deleted($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not delete database {$config['database']}, the statement failed."); } @@ -191,7 +168,7 @@ public function updated(Events\Websites\Updated $event) new Events\Database\Renaming($config, $event->website) ); - if (!$this->driver($config)->updated($event, $config, $this->connection)) { + if (!app(DatabaseDriverFactory::class)->create($config['driver'])->updated($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not rename database {$config['database']}, the statement failed."); } diff --git a/src/Providers/TenancyProvider.php b/src/Providers/TenancyProvider.php index 5adad974..773dd86c 100644 --- a/src/Providers/TenancyProvider.php +++ b/src/Providers/TenancyProvider.php @@ -88,6 +88,7 @@ protected function registerProviders() $this->app->register(Providers\BusProvider::class); $this->app->register(Providers\FilesystemProvider::class); $this->app->register(Providers\HostnameProvider::class); + $this->app->register(Providers\DatabaseDriverProvider::class); // Register last. $this->app->register(Providers\EventProvider::class); diff --git a/src/Providers/Tenants/DatabaseDriverProvider.php b/src/Providers/Tenants/DatabaseDriverProvider.php new file mode 100644 index 00000000..10a8fa08 --- /dev/null +++ b/src/Providers/Tenants/DatabaseDriverProvider.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + * + * @see https://laravel-tenancy.com + * @see https://github.com/hyn/multi-tenant + */ + +namespace Hyn\Tenancy\Providers\Tenants; + +use Hyn\Tenancy\Database\Connection; +use Hyn\Tenancy\Generators\Webserver\Database\Drivers\MariaDB; +use Hyn\Tenancy\Generators\Webserver\Database\Drivers\PostgreSQL; +use Hyn\Tenancy\Generators\Webserver\Database\Drivers\PostgresSchema; +use Illuminate\Support\ServiceProvider; +use Hyn\Tenancy\Generators\Webserver\Database\DatabaseDriverFactory; + +class DatabaseDriverProvider extends ServiceProvider +{ + public function register() + { + $this->app->singleton('tenancy.db.drivers', function () { + return collect($this->drivers()); + }); + + $this->app->singleton(DatabaseDriverFactory::class); + } + + private function drivers() + { + $isPgsqlSchema = config('tenancy.db.tenant-division-mode') === Connection::DIVISION_MODE_SEPARATE_SCHEMA; + + return [ + 'pgsql' => $isPgsqlSchema ? PostgresSchema::class : PostgreSQL::class, + 'mysql' => MariaDB::class, + ]; + } +} diff --git a/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php b/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php new file mode 100644 index 00000000..5245cc0f --- /dev/null +++ b/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + * + * @see https://laravel-tenancy.com + * @see https://github.com/hyn/multi-tenant + */ + +namespace Hyn\Tenancy\Tests\Generators\Webserver\Database; + +use Hyn\Tenancy\Tests\Test; +use Hyn\Tenancy\Generators\Webserver\Database\DatabaseDriverFactory; +use Hyn\Tenancy\Generators\Webserver\Database\Drivers\MariaDB; +use Hyn\Tenancy\Contracts\Webserver\DatabaseGenerator; +use Hyn\Tenancy\Database\Connection; +use Hyn\Tenancy\Events\Websites\Created; +use Hyn\Tenancy\Events\Websites\Deleted; +use Hyn\Tenancy\Events\Websites\Updated; + +class DatabaseDriverFactoryTest extends Test +{ + /** + * @test + */ + public function creates_mysql_driver_by_default() + { + $driver = (new DatabaseDriverFactory())->create(); + + $this->assertInstanceOf(MariaDB::class, $driver); + } + + /** + * @test + * @expectedException \Hyn\Tenancy\Exceptions\GeneratorFailedException + */ + public function throws_an_exception_if_driver_doesnt_exist() + { + (new DatabaseDriverFactory())->create('non-existing-driver'); + } + + /** + * @test + */ + public function allows_to_create_custom_driver() + { + app('tenancy.db.drivers')->put('custom', CustomDriver::class); + + $this->assertInstanceOf(CustomDriver::class, (new DatabaseDriverFactory())->create('custom')); + } +} + +class CustomDriver implements DatabaseGenerator +{ + public function created(Created $event, array $config, Connection $connection): bool + { + return true; + } + + public function updated(Updated $event, array $config, Connection $connection): bool + { + return true; + } + + public function deleted(Deleted $event, array $config, Connection $connection): bool + { + return true; + } +} From 55c33f3265726f319f23dc478032fec20285181c Mon Sep 17 00:00:00 2001 From: Laurynas Geigalas Date: Fri, 28 Sep 2018 18:33:26 +0300 Subject: [PATCH 2/7] Fix imports sorting --- src/Providers/Tenants/DatabaseDriverProvider.php | 2 +- .../Webserver/Database/DatabaseDriverFactoryTest.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Providers/Tenants/DatabaseDriverProvider.php b/src/Providers/Tenants/DatabaseDriverProvider.php index 10a8fa08..2f6ce0b8 100644 --- a/src/Providers/Tenants/DatabaseDriverProvider.php +++ b/src/Providers/Tenants/DatabaseDriverProvider.php @@ -15,11 +15,11 @@ namespace Hyn\Tenancy\Providers\Tenants; use Hyn\Tenancy\Database\Connection; +use Hyn\Tenancy\Generators\Webserver\Database\DatabaseDriverFactory; use Hyn\Tenancy\Generators\Webserver\Database\Drivers\MariaDB; use Hyn\Tenancy\Generators\Webserver\Database\Drivers\PostgreSQL; use Hyn\Tenancy\Generators\Webserver\Database\Drivers\PostgresSchema; use Illuminate\Support\ServiceProvider; -use Hyn\Tenancy\Generators\Webserver\Database\DatabaseDriverFactory; class DatabaseDriverProvider extends ServiceProvider { diff --git a/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php b/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php index 5245cc0f..62147cc3 100644 --- a/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php +++ b/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php @@ -14,14 +14,14 @@ namespace Hyn\Tenancy\Tests\Generators\Webserver\Database; -use Hyn\Tenancy\Tests\Test; -use Hyn\Tenancy\Generators\Webserver\Database\DatabaseDriverFactory; -use Hyn\Tenancy\Generators\Webserver\Database\Drivers\MariaDB; use Hyn\Tenancy\Contracts\Webserver\DatabaseGenerator; use Hyn\Tenancy\Database\Connection; use Hyn\Tenancy\Events\Websites\Created; use Hyn\Tenancy\Events\Websites\Deleted; use Hyn\Tenancy\Events\Websites\Updated; +use Hyn\Tenancy\Generators\Webserver\Database\DatabaseDriverFactory; +use Hyn\Tenancy\Generators\Webserver\Database\Drivers\MariaDB; +use Hyn\Tenancy\Tests\Test; class DatabaseDriverFactoryTest extends Test { From d6226ced4a7b7171c56a7cec3d5d64193318716d Mon Sep 17 00:00:00 2001 From: Laurynas Geigalas Date: Sat, 29 Sep 2018 21:21:11 +0300 Subject: [PATCH 3/7] Force database driver to implement contract --- .../Webserver/Database/DatabaseDriverFactory.php | 3 ++- .../Webserver/Database/DatabaseDriverFactoryTest.php | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Generators/Webserver/Database/DatabaseDriverFactory.php b/src/Generators/Webserver/Database/DatabaseDriverFactory.php index 464c02db..dac1a718 100644 --- a/src/Generators/Webserver/Database/DatabaseDriverFactory.php +++ b/src/Generators/Webserver/Database/DatabaseDriverFactory.php @@ -15,10 +15,11 @@ namespace Hyn\Tenancy\Generators\Webserver\Database; use Hyn\Tenancy\Exceptions\GeneratorFailedException; +use Hyn\Tenancy\Contracts\Webserver\DatabaseGenerator; class DatabaseDriverFactory { - public function create($driver = 'mysql') + public function create($driver = 'mysql') : DatabaseGenerator { $drivers = app('tenancy.db.drivers'); diff --git a/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php b/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php index 62147cc3..d4936eb6 100644 --- a/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php +++ b/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php @@ -44,6 +44,17 @@ public function throws_an_exception_if_driver_doesnt_exist() (new DatabaseDriverFactory())->create('non-existing-driver'); } + /** + * @test + * @expectedException \TypeError + */ + public function throws_an_exception_if_driver_doesnt_implement_contract() + { + app('tenancy.db.drivers')->put('random', \stdClass::class); + + (new DatabaseDriverFactory())->create('random'); + } + /** * @test */ From 7eea2715898fb31dfa8c9f111b3718bf874f2847 Mon Sep 17 00:00:00 2001 From: Laurynas Geigalas Date: Mon, 1 Oct 2018 09:35:27 +0300 Subject: [PATCH 4/7] Inject database driver factory as a class dependency instead of resolving it from the container --- .../Webserver/Database/DatabaseGenerator.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Generators/Webserver/Database/DatabaseGenerator.php b/src/Generators/Webserver/Database/DatabaseGenerator.php index e6bf1bbe..5029a96e 100644 --- a/src/Generators/Webserver/Database/DatabaseGenerator.php +++ b/src/Generators/Webserver/Database/DatabaseGenerator.php @@ -35,14 +35,21 @@ class DatabaseGenerator */ protected $mode; + /** + * @var DatabaseDriverFactory + */ + protected $databaseDriverFactory; + /** * DatabaseGenerator constructor. * @param Connection $connection + * @param DatabaseDriverFactory $databaseDriverFactory */ - public function __construct(Connection $connection) + public function __construct(Connection $connection, DatabaseDriverFactory $databaseDriverFactory) { $this->connection = $connection; $this->mode = config('tenancy.db.tenant-division-mode'); + $this->databaseDriverFactory = $databaseDriverFactory; } /** @@ -80,7 +87,7 @@ public function created(Events\Websites\Created $event) new Events\Database\Creating($config, $event->website) ); - if (!app(DatabaseDriverFactory::class)->create($config['driver'])->created($event, $config, $this->connection)) { + if (!$this->databaseDriverFactory->create($config['driver'])->created($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not generate database {$config['database']}, one of the statements failed."); } @@ -128,7 +135,7 @@ public function deleted(Events\Websites\Deleted $event) new Events\Database\Deleting($config, $event->website) ); - if (!app(DatabaseDriverFactory::class)->create($config['driver'])->deleted($event, $config, $this->connection)) { + if (!$this->databaseDriverFactory->create($config['driver'])->deleted($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not delete database {$config['database']}, the statement failed."); } @@ -168,7 +175,7 @@ public function updated(Events\Websites\Updated $event) new Events\Database\Renaming($config, $event->website) ); - if (!app(DatabaseDriverFactory::class)->create($config['driver'])->updated($event, $config, $this->connection)) { + if (!$this->databaseDriverFactory->create($config['driver'])->updated($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not rename database {$config['database']}, the statement failed."); } From eea5cb31bf44996b6475935a513a423154da4ad3 Mon Sep 17 00:00:00 2001 From: Laurynas Geigalas Date: Mon, 1 Oct 2018 09:36:34 +0300 Subject: [PATCH 5/7] Move testing dependency to a separate file --- tests/extend/DatabaseDriverExtend.php | 39 +++++++++++++++++++ .../Database/DatabaseDriverFactoryTest.php | 28 ++----------- 2 files changed, 42 insertions(+), 25 deletions(-) create mode 100644 tests/extend/DatabaseDriverExtend.php diff --git a/tests/extend/DatabaseDriverExtend.php b/tests/extend/DatabaseDriverExtend.php new file mode 100644 index 00000000..85877b0a --- /dev/null +++ b/tests/extend/DatabaseDriverExtend.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + * + * @see https://laravel-tenancy.com + * @see https://github.com/hyn/multi-tenant + */ + +namespace Hyn\Tenancy\Tests\Extend; + +use Hyn\Tenancy\Events\Websites\Created; +use Hyn\Tenancy\Events\Websites\Deleted; +use Hyn\Tenancy\Events\Websites\Updated; +use Hyn\Tenancy\Contracts\Webserver\DatabaseGenerator; +use Hyn\Tenancy\Database\Connection; + +class DatabaseDriverExtend implements DatabaseGenerator +{ + public function created(Created $event, array $config, Connection $connection): bool + { + return true; + } + + public function updated(Updated $event, array $config, Connection $connection): bool + { + return true; + } + + public function deleted(Deleted $event, array $config, Connection $connection): bool + { + return true; + } +} diff --git a/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php b/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php index d4936eb6..508fbfd0 100644 --- a/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php +++ b/tests/unit-tests/Generators/Webserver/Database/DatabaseDriverFactoryTest.php @@ -14,14 +14,10 @@ namespace Hyn\Tenancy\Tests\Generators\Webserver\Database; -use Hyn\Tenancy\Contracts\Webserver\DatabaseGenerator; -use Hyn\Tenancy\Database\Connection; -use Hyn\Tenancy\Events\Websites\Created; -use Hyn\Tenancy\Events\Websites\Deleted; -use Hyn\Tenancy\Events\Websites\Updated; use Hyn\Tenancy\Generators\Webserver\Database\DatabaseDriverFactory; use Hyn\Tenancy\Generators\Webserver\Database\Drivers\MariaDB; use Hyn\Tenancy\Tests\Test; +use Hyn\Tenancy\Tests\Extend\DatabaseDriverExtend; class DatabaseDriverFactoryTest extends Test { @@ -60,26 +56,8 @@ public function throws_an_exception_if_driver_doesnt_implement_contract() */ public function allows_to_create_custom_driver() { - app('tenancy.db.drivers')->put('custom', CustomDriver::class); + app('tenancy.db.drivers')->put('custom', DatabaseDriverExtend::class); - $this->assertInstanceOf(CustomDriver::class, (new DatabaseDriverFactory())->create('custom')); - } -} - -class CustomDriver implements DatabaseGenerator -{ - public function created(Created $event, array $config, Connection $connection): bool - { - return true; - } - - public function updated(Updated $event, array $config, Connection $connection): bool - { - return true; - } - - public function deleted(Deleted $event, array $config, Connection $connection): bool - { - return true; + $this->assertInstanceOf(DatabaseDriverExtend::class, (new DatabaseDriverFactory())->create('custom')); } } From cd082c203106543f44b9c5c2a02bba791da78927 Mon Sep 17 00:00:00 2001 From: Laurynas Geigalas Date: Mon, 1 Oct 2018 09:46:22 +0300 Subject: [PATCH 6/7] Shorten variable name --- .../Webserver/Database/DatabaseGenerator.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Generators/Webserver/Database/DatabaseGenerator.php b/src/Generators/Webserver/Database/DatabaseGenerator.php index 5029a96e..81ac118a 100644 --- a/src/Generators/Webserver/Database/DatabaseGenerator.php +++ b/src/Generators/Webserver/Database/DatabaseGenerator.php @@ -38,18 +38,18 @@ class DatabaseGenerator /** * @var DatabaseDriverFactory */ - protected $databaseDriverFactory; + protected $dbDriverFactory; /** * DatabaseGenerator constructor. * @param Connection $connection - * @param DatabaseDriverFactory $databaseDriverFactory + * @param DatabaseDriverFactory $dbDriverFactory */ - public function __construct(Connection $connection, DatabaseDriverFactory $databaseDriverFactory) + public function __construct(Connection $connection, DatabaseDriverFactory $dbDriverFactory) { $this->connection = $connection; $this->mode = config('tenancy.db.tenant-division-mode'); - $this->databaseDriverFactory = $databaseDriverFactory; + $this->dbDriverFactory = $dbDriverFactory; } /** @@ -87,7 +87,7 @@ public function created(Events\Websites\Created $event) new Events\Database\Creating($config, $event->website) ); - if (!$this->databaseDriverFactory->create($config['driver'])->created($event, $config, $this->connection)) { + if (!$this->dbDriverFactory->create($config['driver'])->created($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not generate database {$config['database']}, one of the statements failed."); } @@ -135,7 +135,7 @@ public function deleted(Events\Websites\Deleted $event) new Events\Database\Deleting($config, $event->website) ); - if (!$this->databaseDriverFactory->create($config['driver'])->deleted($event, $config, $this->connection)) { + if (!$this->dbDriverFactory->create($config['driver'])->deleted($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not delete database {$config['database']}, the statement failed."); } @@ -175,7 +175,7 @@ public function updated(Events\Websites\Updated $event) new Events\Database\Renaming($config, $event->website) ); - if (!$this->databaseDriverFactory->create($config['driver'])->updated($event, $config, $this->connection)) { + if (!$this->dbDriverFactory->create($config['driver'])->updated($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not rename database {$config['database']}, the statement failed."); } From 47530c1db47aa8b1ca52c1c4a7915e22ccb9552f Mon Sep 17 00:00:00 2001 From: Laurynas Geigalas Date: Mon, 1 Oct 2018 11:21:08 +0300 Subject: [PATCH 7/7] Rename variable --- .../Webserver/Database/DatabaseGenerator.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Generators/Webserver/Database/DatabaseGenerator.php b/src/Generators/Webserver/Database/DatabaseGenerator.php index 81ac118a..6fb9cecf 100644 --- a/src/Generators/Webserver/Database/DatabaseGenerator.php +++ b/src/Generators/Webserver/Database/DatabaseGenerator.php @@ -38,18 +38,18 @@ class DatabaseGenerator /** * @var DatabaseDriverFactory */ - protected $dbDriverFactory; + protected $factory; /** * DatabaseGenerator constructor. * @param Connection $connection - * @param DatabaseDriverFactory $dbDriverFactory + * @param DatabaseDriverFactory $factory */ - public function __construct(Connection $connection, DatabaseDriverFactory $dbDriverFactory) + public function __construct(Connection $connection, DatabaseDriverFactory $factory) { $this->connection = $connection; $this->mode = config('tenancy.db.tenant-division-mode'); - $this->dbDriverFactory = $dbDriverFactory; + $this->factory = $factory; } /** @@ -87,7 +87,7 @@ public function created(Events\Websites\Created $event) new Events\Database\Creating($config, $event->website) ); - if (!$this->dbDriverFactory->create($config['driver'])->created($event, $config, $this->connection)) { + if (!$this->factory->create($config['driver'])->created($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not generate database {$config['database']}, one of the statements failed."); } @@ -135,7 +135,7 @@ public function deleted(Events\Websites\Deleted $event) new Events\Database\Deleting($config, $event->website) ); - if (!$this->dbDriverFactory->create($config['driver'])->deleted($event, $config, $this->connection)) { + if (!$this->factory->create($config['driver'])->deleted($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not delete database {$config['database']}, the statement failed."); } @@ -175,7 +175,7 @@ public function updated(Events\Websites\Updated $event) new Events\Database\Renaming($config, $event->website) ); - if (!$this->dbDriverFactory->create($config['driver'])->updated($event, $config, $this->connection)) { + if (!$this->factory->create($config['driver'])->updated($event, $config, $this->connection)) { throw new GeneratorFailedException("Could not rename database {$config['database']}, the statement failed."); }