diff --git a/app/Console/Commands/Environment/AppSettingsCommand.php b/app/Console/Commands/Environment/AppSettingsCommand.php index b3ee96e08..e74278ad3 100644 --- a/app/Console/Commands/Environment/AppSettingsCommand.php +++ b/app/Console/Commands/Environment/AppSettingsCommand.php @@ -2,8 +2,8 @@ namespace App\Console\Commands\Environment; +use App\Traits\EnvironmentWriterTrait; use Illuminate\Console\Command; -use App\Traits\Commands\EnvironmentWriterTrait; use Illuminate\Support\Facades\Artisan; class AppSettingsCommand extends Command diff --git a/app/Console/Commands/Environment/CacheSettingsCommand.php b/app/Console/Commands/Environment/CacheSettingsCommand.php index 97705734d..7837bea1d 100644 --- a/app/Console/Commands/Environment/CacheSettingsCommand.php +++ b/app/Console/Commands/Environment/CacheSettingsCommand.php @@ -2,10 +2,10 @@ namespace App\Console\Commands\Environment; +use App\Traits\Commands\RequestRedisSettingsTrait; +use App\Traits\EnvironmentWriterTrait; use Illuminate\Console\Command; use Illuminate\Contracts\Console\Kernel; -use App\Traits\Commands\EnvironmentWriterTrait; -use App\Traits\Commands\RequestRedisSettingsTrait; class CacheSettingsCommand extends Command { diff --git a/app/Console/Commands/Environment/DatabaseSettingsCommand.php b/app/Console/Commands/Environment/DatabaseSettingsCommand.php index f05f9bbc4..f1218e40c 100644 --- a/app/Console/Commands/Environment/DatabaseSettingsCommand.php +++ b/app/Console/Commands/Environment/DatabaseSettingsCommand.php @@ -2,10 +2,10 @@ namespace App\Console\Commands\Environment; +use App\Traits\EnvironmentWriterTrait; use Illuminate\Console\Command; use Illuminate\Contracts\Console\Kernel; use Illuminate\Database\DatabaseManager; -use App\Traits\Commands\EnvironmentWriterTrait; class DatabaseSettingsCommand extends Command { diff --git a/app/Console/Commands/Environment/EmailSettingsCommand.php b/app/Console/Commands/Environment/EmailSettingsCommand.php index 1059cf780..87c8186c1 100644 --- a/app/Console/Commands/Environment/EmailSettingsCommand.php +++ b/app/Console/Commands/Environment/EmailSettingsCommand.php @@ -2,8 +2,8 @@ namespace App\Console\Commands\Environment; +use App\Traits\EnvironmentWriterTrait; use Illuminate\Console\Command; -use App\Traits\Commands\EnvironmentWriterTrait; class EmailSettingsCommand extends Command { diff --git a/app/Console/Commands/Environment/QueueSettingsCommand.php b/app/Console/Commands/Environment/QueueSettingsCommand.php index 6cca843ae..f8b667402 100644 --- a/app/Console/Commands/Environment/QueueSettingsCommand.php +++ b/app/Console/Commands/Environment/QueueSettingsCommand.php @@ -2,10 +2,10 @@ namespace App\Console\Commands\Environment; +use App\Traits\Commands\RequestRedisSettingsTrait; +use App\Traits\EnvironmentWriterTrait; use Illuminate\Console\Command; use Illuminate\Contracts\Console\Kernel; -use App\Traits\Commands\EnvironmentWriterTrait; -use App\Traits\Commands\RequestRedisSettingsTrait; class QueueSettingsCommand extends Command { diff --git a/app/Console/Commands/Environment/SessionSettingsCommand.php b/app/Console/Commands/Environment/SessionSettingsCommand.php index a314d8edf..be99686f4 100644 --- a/app/Console/Commands/Environment/SessionSettingsCommand.php +++ b/app/Console/Commands/Environment/SessionSettingsCommand.php @@ -2,10 +2,10 @@ namespace App\Console\Commands\Environment; +use App\Traits\Commands\RequestRedisSettingsTrait; +use App\Traits\EnvironmentWriterTrait; use Illuminate\Console\Command; use Illuminate\Contracts\Console\Kernel; -use App\Traits\Commands\EnvironmentWriterTrait; -use App\Traits\Commands\RequestRedisSettingsTrait; class SessionSettingsCommand extends Command { diff --git a/app/Console/Commands/Overrides/SeedCommand.php b/app/Console/Commands/Overrides/SeedCommand.php index 23c476860..c4ca828b2 100644 --- a/app/Console/Commands/Overrides/SeedCommand.php +++ b/app/Console/Commands/Overrides/SeedCommand.php @@ -2,7 +2,7 @@ namespace App\Console\Commands\Overrides; -use App\Console\RequiresDatabaseMigrations; +use App\Traits\Commands\RequiresDatabaseMigrations; use Illuminate\Database\Console\Seeds\SeedCommand as BaseSeedCommand; class SeedCommand extends BaseSeedCommand diff --git a/app/Console/Commands/Overrides/UpCommand.php b/app/Console/Commands/Overrides/UpCommand.php index 3b71ea854..e17808e24 100644 --- a/app/Console/Commands/Overrides/UpCommand.php +++ b/app/Console/Commands/Overrides/UpCommand.php @@ -2,7 +2,7 @@ namespace App\Console\Commands\Overrides; -use App\Console\RequiresDatabaseMigrations; +use App\Traits\Commands\RequiresDatabaseMigrations; use Illuminate\Foundation\Console\UpCommand as BaseUpCommand; class UpCommand extends BaseUpCommand diff --git a/app/Filament/Pages/Installer/PanelInstaller.php b/app/Filament/Pages/Installer/PanelInstaller.php index 00b182af0..2e0dcaf57 100644 --- a/app/Filament/Pages/Installer/PanelInstaller.php +++ b/app/Filament/Pages/Installer/PanelInstaller.php @@ -8,7 +8,8 @@ use App\Filament\Pages\Installer\Steps\EnvironmentStep; use App\Filament\Pages\Installer\Steps\RedisStep; use App\Filament\Pages\Installer\Steps\RequirementsStep; use App\Services\Users\UserCreationService; -use App\Traits\Commands\EnvironmentWriterTrait; +use App\Traits\CheckMigrationsTrait; +use App\Traits\EnvironmentWriterTrait; use Exception; use Filament\Facades\Filament; use Filament\Forms\Components\Wizard; @@ -29,6 +30,7 @@ use Illuminate\Support\HtmlString; */ class PanelInstaller extends SimplePage implements HasForms { + use CheckMigrationsTrait; use EnvironmentWriterTrait; use HasUnsavedDataChangesAlert; use InteractsWithForms; @@ -73,8 +75,10 @@ class PanelInstaller extends SimplePage implements HasForms Finish + BLADE))), ]; @@ -105,13 +109,17 @@ class PanelInstaller extends SimplePage implements HasForms '--seed' => true, ]); + if (!$this->hasCompletedMigrations()) { + throw new Exception('Migrations didn\'t run successfully. Double check your database configuration.'); + } + // Create first admin user $userData = array_get($inputs, 'user'); $userData['root_admin'] = true; app(UserCreationService::class)->handle($userData); // Install setup complete - $this->writeToEnvironment(['APP_INSTALLED' => true]); + $this->writeToEnvironment(['APP_INSTALLED' => 'true']); $this->rememberData(); @@ -122,10 +130,13 @@ class PanelInstaller extends SimplePage implements HasForms redirect()->intended(Filament::getUrl()); } catch (Exception $exception) { + report($exception); + Notification::make() ->title('Installation Failed') ->body($exception->getMessage()) ->danger() + ->persistent() ->send(); } } diff --git a/app/Filament/Pages/Settings.php b/app/Filament/Pages/Settings.php index ea1e099c8..4cfe7ce10 100644 --- a/app/Filament/Pages/Settings.php +++ b/app/Filament/Pages/Settings.php @@ -4,7 +4,7 @@ namespace App\Filament\Pages; use App\Models\Backup; use App\Notifications\MailTested; -use App\Traits\Commands\EnvironmentWriterTrait; +use App\Traits\EnvironmentWriterTrait; use Exception; use Filament\Actions\Action; use Filament\Forms\Components\Actions\Action as FormAction; diff --git a/app/Traits/CheckMigrationsTrait.php b/app/Traits/CheckMigrationsTrait.php new file mode 100644 index 000000000..ee2de8f3a --- /dev/null +++ b/app/Traits/CheckMigrationsTrait.php @@ -0,0 +1,29 @@ +make('migrator'); + + $files = $migrator->getMigrationFiles(database_path('migrations')); + + if (!$migrator->repositoryExists()) { + return false; + } + + if (array_diff(array_keys($files), $migrator->getRepository()->getRan())) { + return false; + } + + return true; + } +} diff --git a/app/Console/RequiresDatabaseMigrations.php b/app/Traits/Commands/RequiresDatabaseMigrations.php similarity index 63% rename from app/Console/RequiresDatabaseMigrations.php rename to app/Traits/Commands/RequiresDatabaseMigrations.php index c6b71f1bd..67551a26a 100644 --- a/app/Console/RequiresDatabaseMigrations.php +++ b/app/Traits/Commands/RequiresDatabaseMigrations.php @@ -1,32 +1,16 @@ getLaravel()->make('migrator'); - - $files = $migrator->getMigrationFiles(database_path('migrations')); - - if (!$migrator->repositoryExists()) { - return false; - } - - if (array_diff(array_keys($files), $migrator->getRepository()->getRan())) { - return false; - } - - return true; - } + use CheckMigrationsTrait; /** * Throw a massive error into the console to hopefully catch the users attention and get diff --git a/app/Traits/Commands/EnvironmentWriterTrait.php b/app/Traits/EnvironmentWriterTrait.php similarity index 88% rename from app/Traits/Commands/EnvironmentWriterTrait.php rename to app/Traits/EnvironmentWriterTrait.php index eb40f8c8b..cd7fbdfe0 100644 --- a/app/Traits/Commands/EnvironmentWriterTrait.php +++ b/app/Traits/EnvironmentWriterTrait.php @@ -1,8 +1,8 @@