setName('scheme:sync') ->addOption('skip-data', null, Option::VALUE_NONE, 'Skip data migration') ->addOption('force', null, Option::VALUE_NONE, 'Force execution without confirmation') ->setDescription('Synchronize Scheme classes to Database'); } protected function execute(Input $input, Output $output) { $skipData = $input->getOption('skip-data'); $service = new SchemeToDbService(); $schemeDir = app()->getAppPath() . 'admin/scheme/'; if (!is_dir($schemeDir)) { $output->writeln("Scheme directory not found: $schemeDir"); return; } $files = glob($schemeDir . '*.php'); foreach ($files as $file) { require_once $file; $className = 'app\\admin\\scheme\\' . basename($file, '.php'); if (class_exists($className)) { $output->writeln("Syncing $className..."); try { $backup = $service->sync($className, $skipData); $output->writeln("Success!"); if ($backup) { $output->writeln("Backup created: $backup"); } } catch (\Exception $e) { $output->writeln("Failed: " . $e->getMessage() . ""); } } } } }