diff --git a/app/Http/Middleware/AppInstallation.php b/app/Http/Middleware/AppInstallation.php index beb9927..90df54f 100644 --- a/app/Http/Middleware/AppInstallation.php +++ b/app/Http/Middleware/AppInstallation.php @@ -3,10 +3,13 @@ namespace App\Http\Middleware; use App\Configuration; +use App\Facade\UserConfig; use App\Helpers\MiscHelper; use Closure; use Illuminate\Foundation\Application; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Artisan; +use Illuminate\Support\Facades\Log; class AppInstallation { @@ -61,6 +64,9 @@ class AppInstallation if ($isAppInstalled) { + // See if an update is necessary + $this->updateDatabaseIfRequired(); + // App is configured, continue on return $next($request); } @@ -78,4 +84,21 @@ class AppInstallation app('config')->set(['app' => ['key' => $key]]); } } + + private function updateDatabaseIfRequired() + { + $versionNumber = UserConfig::getOrCreateModel('app_version'); + $appVersionNumber = config('app.version'); + + if (is_null($appVersionNumber) || $versionNumber->value != $appVersionNumber) + { + Log::info('Upgrading database', ['new_version' => $appVersionNumber]); + + Artisan::call('cache:clear'); + Artisan::call('migrate', ['--force' => true]); + } + + $versionNumber->value = $appVersionNumber; + $versionNumber->save(); + } } \ No newline at end of file