1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
<?php
namespace Illuminate\Database\Console\Migrations;
use Illuminate\Support\Collection; use Illuminate\Database\Migrations\Migrator; use Symfony\Component\Console\Input\InputOption;
class StatusCommand extends BaseCommand { /** * The console command name. * * @var string */ protected $name = 'migrate:status';
/** * The console command description. * * @var string */ protected $description = 'Show the status of each migration';
/** * The migrator instance. * * @var \Illuminate\Database\Migrations\Migrator */ protected $migrator;
/** * Create a new migration rollback command instance. * * @param \Illuminate\Database\Migrations\Migrator $migrator * @return \Illuminate\Database\Console\Migrations\StatusCommand */ public function __construct(Migrator $migrator) { parent::__construct();
$this->migrator = $migrator; }
/** * Execute the console command. * * @return void */ public function fire() { $this->migrator->setConnection($this->option('database'));
if (! $this->migrator->repositoryExists()) { return $this->error('No migrations found.'); }
$ran = $this->migrator->getRepository()->getRan();
$migrations = Collection::make($this->getAllMigrationFiles()) ->map(function ($migration) use ($ran) { return in_array($this->migrator->getMigrationName($migration), $ran) ? ['<info>Y</info>', $this->migrator->getMigrationName($migration)] : ['<fg=red>N</fg=red>', $this->migrator->getMigrationName($migration)]; });
if (count($migrations) > 0) { $this->table(['Ran?', 'Migration'], $migrations); } else { $this->error('No migrations found'); } }
/** * Get an array of all of the migration files. * * @return array */ protected function getAllMigrationFiles() { return $this->migrator->getMigrationFiles($this->getMigrationPaths()); }
/** * Get the console command options. * * @return array */ protected function getOptions() { return [ ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'],
['path', null, InputOption::VALUE_OPTIONAL, 'The path of migrations files to use.'], ]; } }
|