forked from Alex/Pterodactyl-Panel
56 lines
1.8 KiB
PHP
56 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Pterodactyl\Console;
|
|
|
|
/**
|
|
* @mixin \Illuminate\Console\Command
|
|
*/
|
|
trait RequiresDatabaseMigrations
|
|
{
|
|
/**
|
|
* Checks if the migrations have finished running by comparing the last migration file.
|
|
*/
|
|
protected function hasCompletedMigrations(): bool
|
|
{
|
|
/** @var \Illuminate\Database\Migrations\Migrator $migrator */
|
|
$migrator = $this->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;
|
|
}
|
|
|
|
/**
|
|
* Throw a massive error into the console to hopefully catch the users attention and get
|
|
* them to properly run the migrations rather than ignoring all of the other previous
|
|
* errors...
|
|
*/
|
|
protected function showMigrationWarning()
|
|
{
|
|
$this->getOutput()->writeln('<options=bold>
|
|
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
|
| |
|
|
| Your database has not been properly migrated! |
|
|
| |
|
|
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |</>
|
|
|
|
You must run the following command to finish migrating your database:
|
|
|
|
<fg=green;options=bold>php artisan migrate --step --force</>
|
|
|
|
You will not be able to use Pterodactyl Panel as expected without fixing your
|
|
database state by running the command above.
|
|
');
|
|
|
|
$this->getOutput()->error('You must correct the error above before continuing.');
|
|
}
|
|
}
|