. */ namespace FireflyIII\Console\Commands\Upgrade; set_time_limit(0); use Artisan; use Illuminate\Console\Command; /** * Class UpgradeDatabase * @codeCoverageIgnore */ class UpgradeDatabase extends Command { /** * The console command description. * * @var string */ protected $description = 'Upgrades the database to the latest version.'; /** * The name and signature of the console command. * * @var string */ protected $signature = 'firefly-iii:upgrade-database {--F|force : Force all upgrades.}'; /** * Execute the console command. * * @return int */ public function handle(): int { $commands = [ // there are 11 upgrade commands. 'firefly-iii:transaction-identifiers', 'firefly-iii:account-currencies', 'firefly-iii:transfer-currencies', 'firefly-iii:other-currencies', 'firefly-iii:migrate-notes', 'firefly-iii:migrate-attachments', 'firefly-iii:bills-to-rules', 'firefly-iii:bl-currency', 'firefly-iii:cc-liabilities', 'firefly-iii:migrate-to-groups', 'firefly-iii:back-to-journals', ]; $args = []; if ($this->option('force')) { $args = ['--force' => true]; } foreach ($commands as $command) { $this->line(sprintf('Now executing %s', $command)); Artisan::call($command, $args); $result = Artisan::output(); echo $result; } return 0; } }