getMessage() . "\n"); exit(1); } $current = Migrate::currentVersion($db); $target = Migrate::VERSION; echo "数据库:迁移版本 当前={$current} 目标={$target}\n"; if ($statusOnly) { echo $current === $target ? "状态:已是最新\n" : "状态:需要执行迁移(php tools/migrate.php)\n"; exit(0); } if ($current === $target) { echo "无需迁移。\n"; exit(0); } echo "开始迁移……\n"; try { $done = Migrate::run($db, static function (string $s): void { echo $s . "\n"; }); } catch (Throwable $e) { fwrite(STDERR, "迁移失败:" . $e->getMessage() . "\n"); exit(1); } echo $done === [] ? "本次没有需要执行的步骤(结构已是目标状态)。\n" : '迁移完成,共 ' . count($done) . " 步。\n";