. */ declare(strict_types=1); namespace FireflyIII\Console\Commands\Correction; use FireflyIII\Console\Commands\ShowsFriendlyMessages; use Illuminate\Console\Command; /** * Class RenameMetaFields */ class RenameMetaFields extends Command { use ShowsFriendlyMessages; protected $description = 'Rename changed meta fields.'; protected $signature = 'firefly-iii:rename-meta-fields'; private int $count = 0; /** * Execute the console command. */ public function handle(): int { $changes = [ 'original-source' => 'original_source', 'importHash' => 'import_hash', 'importHashV2' => 'import_hash_v2', 'sepa-cc' => 'sepa_cc', 'sepa-ct-op' => 'sepa_ct_op', 'sepa-ct-id' => 'sepa_ct_id', 'sepa-db' => 'sepa_db', 'sepa-country' => 'sepa_country', 'sepa-ep' => 'sepa_ep', 'sepa-ci' => 'sepa_ci', 'sepa-batch-id' => 'sepa_batch_id', 'external_uri' => 'external_url', ]; foreach ($changes as $original => $update) { $this->rename($original, $update); } if (0 === $this->count) { $this->friendlyPositive('All meta fields are correct.'); } if (0 !== $this->count) { $this->friendlyInfo(sprintf('Renamed %d meta field(s).', $this->count)); } return 0; } private function rename(string $original, string $update): void { $total = \DB::table('journal_meta') ->where('name', '=', $original) ->update(['name' => $update]) ; $this->count += $total; } }