mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-10-26 07:26:51 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.9 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.
 | |
|      *
 | |
|      * @return bool
 | |
|      */
 | |
|     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...
 | |
|      *
 | |
|      * @return int
 | |
|      */
 | |
|     protected function showMigrationWarning(): int
 | |
|     {
 | |
|         $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.");
 | |
| 
 | |
|         return 1;
 | |
|     }
 | |
| }
 | 
