$val) { $name = 'PHP_' . strtoupper($key); if (is_array($val)) { foreach ($val as $k => $v) { $item = $name . '_' . strtoupper($k); putenv("$item=$v"); } } else { putenv("$name=$val"); } } } \think\Config::set(\think\Config::load(APP_PATH . 'config.php')); \think\Config::set(include APP_PATH . 'database.php', 'database'); \think\Loader::addNamespace('app', APP_PATH); } use think\Db; function runWithdrawMigration() { echo "========================================================\n"; echo " 开始执行提现模块与收益中心表结构安全升级迁移\n"; echo "========================================================\n"; $prefix = config('database.prefix') ?: 'hla_'; $sqls = [ "ALTER TABLE `{$prefix}shopro_withdraw` MODIFY COLUMN `withdraw_info` text NULL COMMENT '提现信息'", "ALTER TABLE `{$prefix}shopro_withdraw` MODIFY COLUMN `charge_rate` decimal(10, 4) NOT NULL DEFAULT '0.0000' COMMENT '手续费率'", "ALTER TABLE `{$prefix}shopro_withdraw` MODIFY COLUMN `platform` varchar(50) NULL DEFAULT NULL COMMENT '平台'", "ALTER TABLE `{$prefix}shopro_withdraw` MODIFY COLUMN `payment_json` text NULL COMMENT '交易原始数据'", "ALTER TABLE `{$prefix}shopro_withdraw_log` MODIFY COLUMN `content` text NULL COMMENT '日志内容'", "ALTER TABLE `{$prefix}shopro_partner_reward` MODIFY COLUMN `reward_type` varchar(64) NOT NULL COMMENT '收益类型标识'", "ALTER TABLE `{$prefix}shopro_partner_reward` MODIFY COLUMN `ext` text NULL COMMENT '扩展信息与计算公式 JSON'", ]; $successCount = 0; foreach ($sqls as $sql) { try { Db::execute($sql); echo "[SUCCESS] " . $sql . "\n"; $successCount++; } catch (\Exception $e) { echo "[WARN/SKIP] " . $sql . " => " . $e->getMessage() . "\n"; } } echo "\n迁移执行完毕,成功执行 {$successCount}/" . count($sqls) . " 条语句。\n"; return true; } if (php_sapi_name() === 'cli') { try { runWithdrawMigration(); } catch (\Throwable $e) { echo "迁移执行异常: " . $e->getMessage() . "\n"; exit(1); } }