From 1c28afce6917224bbe26fc0c3a91af1546132065 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Tue, 24 Apr 2018 23:48:37 +0200 Subject: [PATCH] Migrations: always pass a schema builder This removes the funky auto-injection capability from migration closures. While technically removing a feature, this means we do not need a fully-wired IoC container e.g. during installation. Instead, all migration closures simply receive a schema builder object (which is what most of them were already doing anyway). --- framework/core/src/Database/Migration.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/framework/core/src/Database/Migration.php b/framework/core/src/Database/Migration.php index f8c08195b..79332813d 100644 --- a/framework/core/src/Database/Migration.php +++ b/framework/core/src/Database/Migration.php @@ -11,8 +11,7 @@ namespace Flarum\Database; -use Flarum\Settings\SettingsRepositoryInterface; -use Illuminate\Database\ConnectionInterface; +use Flarum\Settings\DatabaseSettingsRepository; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Builder; @@ -100,12 +99,20 @@ abstract class Migration public static function addSettings(array $defaults) { return [ - 'up' => function (SettingsRepositoryInterface $settings) use ($defaults) { + 'up' => function (Builder $schema) use ($defaults) { + $settings = new DatabaseSettingsRepository( + $schema->getConnection() + ); + foreach ($defaults as $key => $value) { $settings->set($key, $value); } }, - 'down' => function (SettingsRepositoryInterface $settings) use ($defaults) { + 'down' => function (Builder $schema) use ($defaults) { + $settings = new DatabaseSettingsRepository( + $schema->getConnection() + ); + foreach (array_keys($defaults) as $key) { $settings->delete($key); } @@ -130,7 +137,9 @@ abstract class Migration } return [ - 'up' => function (ConnectionInterface $db) use ($keys) { + 'up' => function (Builder $schema) use ($keys) { + $db = $schema->getConnection(); + foreach ($keys as $key) { $instance = $db->table('permissions')->where($key)->first(); @@ -140,7 +149,9 @@ abstract class Migration } }, - 'down' => function (ConnectionInterface $db) use ($keys) { + 'down' => function (Builder $schema) use ($keys) { + $db = $schema->getConnection(); + foreach ($keys as $key) { $db->table('permissions')->where($key)->delete(); }