table('nginx_log_position') ->addColumn('node_id', 'string', ['limit' => 64, 'default' => '', 'comment' => '采集节点 ID(空=全局汇总)']) ->removeIndexByName('uniq_file_path') ->addIndex(['node_id', 'file_path'], ['unique' => true, 'name' => 'uniq_node_file']) ->update(); // ==================== 2. nginx_access_log(raw 表)==================== // 仅加字段 + 普通索引(按节点 + 时间查询),无唯一键变更 $this->table('nginx_access_log') ->addColumn('node_id', 'string', ['limit' => 64, 'default' => '', 'comment' => '采集节点 ID(空=全局汇总)']) ->addIndex(['node_id', 'time_local'], ['name' => 'idx_node_time']) ->update(); // ==================== 3. nginx_stat_hour ==================== // 旧唯一键 uniq_date_hour(stat_date, stat_hour) → uniq_node_date_hour(node_id, stat_date, stat_hour) $this->table('nginx_stat_hour') ->addColumn('node_id', 'string', ['limit' => 64, 'default' => '', 'comment' => '采集节点 ID(空=全局汇总)']) ->removeIndexByName('uniq_date_hour') ->addIndex(['node_id', 'stat_date', 'stat_hour'], ['unique' => true, 'name' => 'uniq_node_date_hour']) ->update(); // ==================== 4. nginx_stat_url ==================== // 旧唯一键 uniq_date_uri(stat_date, uri) → uniq_node_date_uri(node_id, stat_date, uri) $this->table('nginx_stat_url') ->addColumn('node_id', 'string', ['limit' => 64, 'default' => '', 'comment' => '采集节点 ID(空=全局汇总)']) ->removeIndexByName('uniq_date_uri') ->addIndex(['node_id', 'stat_date', 'uri'], ['unique' => true, 'name' => 'uniq_node_date_uri']) ->update(); // ==================== 5. nginx_stat_referer ==================== // 旧唯一键 uniq_date_referer(stat_date, referer_domain) → uniq_node_date_referer(node_id, stat_date, referer_domain) $this->table('nginx_stat_referer') ->addColumn('node_id', 'string', ['limit' => 64, 'default' => '', 'comment' => '采集节点 ID(空=全局汇总)']) ->removeIndexByName('uniq_date_referer') ->addIndex(['node_id', 'stat_date', 'referer_domain'], ['unique' => true, 'name' => 'uniq_node_date_referer']) ->update(); // ==================== 6. nginx_stat_ua ==================== // 旧唯一键 uniq_date_type_name(stat_date, ua_type, ua_name) → uniq_node_date_type_name(node_id, stat_date, ua_type, ua_name) $this->table('nginx_stat_ua') ->addColumn('node_id', 'string', ['limit' => 64, 'default' => '', 'comment' => '采集节点 ID(空=全局汇总)']) ->removeIndexByName('uniq_date_type_name') ->addIndex(['node_id', 'stat_date', 'ua_type', 'ua_name'], ['unique' => true, 'name' => 'uniq_node_date_type_name']) ->update(); } }