PDO::ERRMODE_EXCEPTION, ]); $changes = [ ['table' => 'ai_models', 'column' => 'provider', 'sql' => "ALTER TABLE ai_models ADD COLUMN provider VARCHAR(20) NOT NULL DEFAULT 'openai' COMMENT '接口类型:openai/dify' AFTER name"], ['table' => 'conversations', 'column' => 'external_conversation_id', 'sql' => "ALTER TABLE conversations ADD COLUMN external_conversation_id VARCHAR(64) NULL COMMENT '第三方平台会话ID' AFTER message_count"], ]; foreach ($changes as $change) { $exists = $pdo->query("SHOW COLUMNS FROM {$change['table']} LIKE '{$change['column']}'")->fetch(); if ($exists) { echo "{$change['table']}.{$change['column']} 已存在,跳过。\n"; continue; } $pdo->exec($change['sql']); echo "已为 {$change['table']} 添加 {$change['column']} 字段。\n"; } } catch (PDOException $e) { echo "Error: " . $e->getMessage() . "\n"; exit(1); }