============================================================================== SCHEMA DIFF REPORT — 本地 top-fans vs 服务器 topfans ============================================================================== 仅本地有 (0): 无 仅服务器有 (0): 无 ────────────────────────────────────────────────────────────────────────────── 📋 activity_assets ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(3): + activity_assets_asset_id_key CREATE UNIQUE INDEX activity_assets_asset_id_key ON public.activity_assets USING btree (asset_id) NOT NULL default=∅ + idx_activity_asset_id CREATE INDEX idx_activity_asset_id ON public.activity_assets USING btree (asset_id) NOT NULL default=∅ + uk_activity_owner_activity_name CREATE UNIQUE INDEX uk_activity_owner_activity_name ON public.activity_assets USING btree (owner_uid, activity_id, name) NOT NULL default=∅ ⚠️ 服务器多列(1)— 本地无: - uni_activity_assets_asset_id CREATE UNIQUE INDEX uni_activity_assets_asset_id ON public.activity_assets USING btree (asset_id) NOT NULL default=∅ 🔄 列定义不同(3): ~ idx_activity_star 本地: CREATE INDEX idx_activity_star ON public.activity_assets USING btree (star_id, activity_id) NOT NULL default=∅ 服务器: CREATE INDEX idx_activity_star ON public.activity_assets USING btree (star_id) NOT NULL default=∅ ~ like_count 本地: integer NOT NULL default=0 服务器: integer NULL default=0 ~ status 本地: smallint NOT NULL default=0 服务器: integer NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 ai_chat_configs ────────────────────────────────────────────────────────────────────────────── ⚠️ 服务器多列(1)— 本地无: - idx_ai_chat_configs_config_key CREATE UNIQUE INDEX idx_ai_chat_configs_config_key ON public.ai_chat_configs USING btree (config_key) NOT NULL default=∅ 🔄 列定义不同(4): ~ category 本地: character varying NOT NULL default=∅ 服务器: character varying NULL default=∅ ~ config_type 本地: character varying NOT NULL default='string'::character varying 服务器: character varying NULL default='string'::character varying ~ created_at 本地: bigint NOT NULL default=(EXTRACT(epoch FROM now()) * (1000)::numeric) 服务器: bigint NULL default=∅ ~ updated_at 本地: bigint NOT NULL default=(EXTRACT(epoch FROM now()) * (1000)::numeric) 服务器: bigint NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 asset_level_change_logs ────────────────────────────────────────────────────────────────────────────── 🔄 列定义不同(2): ~ trigger_hours 本地: bigint NULL default=0 服务器: integer NULL default=0 ~ trigger_likes 本地: bigint NULL default=0 服务器: integer NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 asset_level_records ────────────────────────────────────────────────────────────────────────────── 🔄 列定义不同(4): ~ lifetime_exhibition_hours 本地: bigint NOT NULL default=0 服务器: integer NOT NULL default=0 ~ lifetime_likes 本地: bigint NOT NULL default=0 服务器: integer NOT NULL default=0 ~ season_exhibition_hours 本地: bigint NOT NULL default=0 服务器: integer NOT NULL default=0 ~ season_likes 本地: bigint NOT NULL default=0 服务器: integer NOT NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 asset_likes ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(2): + idx_asset_likes_asset_created CREATE INDEX idx_asset_likes_asset_created ON public.asset_likes USING btree (asset_id, created_at DESC) NOT NULL default=∅ + uk_asset_likes_user_asset_exhibition CREATE UNIQUE INDEX uk_asset_likes_user_asset_exhibition ON public.asset_likes USING btree (user_id, asset_id, exhibition_id) NOT NULL default=∅ ⚠️ 服务器多列(2)— 本地无: - uk_asset_likes_user_asset CREATE UNIQUE INDEX uk_asset_likes_user_asset ON public.asset_likes USING btree (asset_id, user_id) NOT NULL default=∅ - uk_asset_likes_user_asset_star CREATE UNIQUE INDEX uk_asset_likes_user_asset_star ON public.asset_likes USING btree (user_id, asset_id, star_id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 asset_material_relations ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(3): + idx_amr_asset_type_layer CREATE INDEX idx_amr_asset_type_layer ON public.asset_material_relations USING btree (asset_id, material_type, layer_order) WHERE (deleted_at IS NULL) NOT NULL default=∅ + uk_amr_asset_layer_active CREATE UNIQUE INDEX uk_amr_asset_layer_active ON public.asset_material_relations USING btree (asset_id, layer_order) WHERE (deleted_at IS NULL) NOT NULL default=∅ + uk_amr_asset_type_active CREATE UNIQUE INDEX uk_amr_asset_type_active ON public.asset_material_relations USING btree (asset_id, material_type) WHERE (deleted_at IS NULL) NOT NULL default=∅ 🔄 列定义不同(8): ~ idx_amr_asset_id 本地: CREATE INDEX idx_amr_asset_id ON public.asset_material_relations USING btree (asset_id) WHERE (deleted_at IS NULL) NOT NULL default=∅ 服务器: CREATE INDEX idx_amr_asset_id ON public.asset_material_relations USING btree (asset_id) NOT NULL default=∅ ~ idx_amr_material_id 本地: CREATE INDEX idx_amr_material_id ON public.asset_material_relations USING btree (material_id) WHERE (deleted_at IS NULL) NOT NULL default=∅ 服务器: CREATE INDEX idx_amr_material_id ON public.asset_material_relations USING btree (material_id) NOT NULL default=∅ ~ layer_order 本地: integer NOT NULL default=0 服务器: bigint NOT NULL default=0 ~ opacity 本地: double precision NULL default=1.0 服务器: numeric NULL default=1 ~ rotation 本地: double precision NULL default=0 服务器: numeric NULL default=0 ~ scale_x 本地: double precision NULL default=1.0 服务器: numeric NULL default=1 ~ scale_y 本地: double precision NULL default=1.0 服务器: numeric NULL default=1 ~ version 本地: integer NOT NULL default=1 服务器: bigint NOT NULL default=1 ────────────────────────────────────────────────────────────────────────────── 📋 asset_registry ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(5): + idx_registry_star_activity CREATE INDEX idx_registry_star_activity ON public.asset_registry USING btree (star_id, activity_id) WHERE ((asset_type) NOT NULL default=text = 'activity'::text) + idx_registry_star_grade CREATE INDEX idx_registry_star_grade ON public.asset_registry USING btree (star_id, grade) WHERE ((asset_type) NOT NULL default=text = 'regular'::text) + idx_registry_type_star CREATE INDEX idx_registry_type_star ON public.asset_registry USING btree (asset_type, star_id) NOT NULL default=∅ + uk_registry_asset_type_id CREATE UNIQUE INDEX uk_registry_asset_type_id ON public.asset_registry USING btree (asset_type, asset_id) NOT NULL default=∅ + uk_registry_owner_star_type_asset CREATE UNIQUE INDEX uk_registry_owner_star_type_asset ON public.asset_registry USING btree (owner_uid, star_id, asset_type, asset_id) NOT NULL default=∅ 🔄 列定义不同(3): ~ display_status 本地: integer NOT NULL default=0 服务器: integer NULL default=0 ~ like_count 本地: integer NOT NULL default=0 服务器: integer NULL default=0 ~ status 本地: smallint NOT NULL default=0 服务器: integer NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 assets ────────────────────────────────────────────────────────────────────────────── ⚠️ 服务器多列(1)— 本地无: - rarity integer NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 booth_slots ────────────────────────────────────────────────────────────────────────────── 🔄 列定义不同(2): ~ star_id 本地: bigint NULL default=∅ 服务器: bigint NOT NULL default=∅ ~ user_id 本地: bigint NULL default=∅ 服务器: bigint NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 coin_transaction_records ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(6): + change_type character varying NOT NULL default=∅ + coin_transaction_records_pkey CREATE UNIQUE INDEX coin_transaction_records_pkey ON public.coin_transaction_records USING btree (id) NOT NULL default=∅ + delta bigint NOT NULL default=∅ + ix_coin_tx_created CREATE INDEX ix_coin_tx_created ON public.coin_transaction_records USING btree (created_at DESC) NOT NULL default=∅ + ix_coin_tx_user_star CREATE INDEX ix_coin_tx_user_star ON public.coin_transaction_records USING btree (user_id, star_id) NOT NULL default=∅ + source_id character varying NULL default=∅ ⚠️ 服务器多列(8)— 本地无: - amount bigint NOT NULL default=∅ - idx_coin_transaction_records_created CREATE INDEX idx_coin_transaction_records_created ON public.coin_transaction_records USING btree (created_at DESC) NOT NULL default=∅ - idx_coin_transaction_records_star CREATE INDEX idx_coin_transaction_records_star ON public.coin_transaction_records USING btree (star_id) NOT NULL default=∅ - idx_coin_transaction_records_user CREATE INDEX idx_coin_transaction_records_user ON public.coin_transaction_records USING btree (user_id) NOT NULL default=∅ - reference_id character varying NULL default=∅ - reference_type character varying NULL default=∅ - transaction_type character varying NOT NULL default=∅ - uk_coin_transaction_records_id CREATE UNIQUE INDEX uk_coin_transaction_records_id ON public.coin_transaction_records USING btree (id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 collection_assets ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(3): + collection_assets_asset_id_key CREATE UNIQUE INDEX collection_assets_asset_id_key ON public.collection_assets USING btree (asset_id) NOT NULL default=∅ + idx_collection_asset_id CREATE INDEX idx_collection_asset_id ON public.collection_assets USING btree (asset_id) NOT NULL default=∅ + uk_collection_owner_star_name CREATE UNIQUE INDEX uk_collection_owner_star_name ON public.collection_assets USING btree (owner_uid, star_id, name) NOT NULL default=∅ ⚠️ 服务器多列(1)— 本地无: - uni_collection_assets_asset_id CREATE UNIQUE INDEX uni_collection_assets_asset_id ON public.collection_assets USING btree (asset_id) NOT NULL default=∅ 🔄 列定义不同(2): ~ like_count 本地: integer NOT NULL default=0 服务器: integer NULL default=0 ~ status 本地: smallint NOT NULL default=0 服务器: integer NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 crystal_transaction_records ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(4): + crystal_transaction_records_pkey CREATE UNIQUE INDEX crystal_transaction_records_pkey ON public.crystal_transaction_records USING btree (id) NOT NULL default=∅ + ix_crystal_tx_change_type CREATE INDEX ix_crystal_tx_change_type ON public.crystal_transaction_records USING btree (change_type) NOT NULL default=∅ + ix_crystal_tx_created CREATE INDEX ix_crystal_tx_created ON public.crystal_transaction_records USING btree (created_at DESC) NOT NULL default=∅ + ix_crystal_tx_user_star CREATE INDEX ix_crystal_tx_user_star ON public.crystal_transaction_records USING btree (user_id, star_id) NOT NULL default=∅ ⚠️ 服务器多列(5)— 本地无: - idx_crystal_transaction_records_created CREATE INDEX idx_crystal_transaction_records_created ON public.crystal_transaction_records USING btree (created_at DESC) NOT NULL default=∅ - idx_crystal_transaction_records_star CREATE INDEX idx_crystal_transaction_records_star ON public.crystal_transaction_records USING btree (star_id) NOT NULL default=∅ - idx_crystal_transaction_records_user CREATE INDEX idx_crystal_transaction_records_user ON public.crystal_transaction_records USING btree (user_id) NOT NULL default=∅ - reference_type character varying NULL default=∅ - uk_crystal_transaction_records_id CREATE UNIQUE INDEX uk_crystal_transaction_records_id ON public.crystal_transaction_records USING btree (id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 dazi_level_thresholds ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(3): + condition_param integer NULL default=0 + description character varying NULL default=∅ + upgrade_condition character varying NULL default=∅ ⚠️ 服务器多列(5)— 本地无: - exp_requirement bigint NOT NULL default=0 - id bigint NOT NULL default=nextval('dazi_level_thresholds_id_seq'::regclass) - title character varying NULL default=∅ - uk_dazi_level_thresholds_level CREATE UNIQUE INDEX uk_dazi_level_thresholds_level ON public.dazi_level_thresholds USING btree (level) NOT NULL default=∅ - updated_at bigint NOT NULL default=∅ 🔄 列定义不同(1): ~ dazi_level_thresholds_pkey 本地: CREATE UNIQUE INDEX dazi_level_thresholds_pkey ON public.dazi_level_thresholds USING btree (level) NOT NULL default=∅ 服务器: CREATE UNIQUE INDEX dazi_level_thresholds_pkey ON public.dazi_level_thresholds USING btree (id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 exhibitions ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + idx_asset CREATE INDEX idx_asset ON public.exhibitions USING btree (asset_id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 fan_profiles ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + revenue_boost_bps integer NOT NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 laser_card_instances ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + uk_lci_user_client_req CREATE UNIQUE INDEX uk_lci_user_client_req ON public.laser_card_instances USING btree (owner_user_id, client_request_id) WHERE ((deleted_at IS NULL) AND (client_request_id IS NOT NULL)) NOT NULL default=∅ 🔄 列定义不同(3): ~ idx_lci_asset 本地: CREATE INDEX idx_lci_asset ON public.laser_card_instances USING btree (asset_id) WHERE ((asset_id IS NOT NULL) AND (deleted_at IS NULL)) NOT NULL default=∅ 服务器: CREATE INDEX idx_lci_asset ON public.laser_card_instances USING btree (asset_id) NOT NULL default=∅ ~ idx_lci_owner_status 本地: CREATE INDEX idx_lci_owner_status ON public.laser_card_instances USING btree (owner_user_id, status) WHERE (deleted_at IS NULL) NOT NULL default=∅ 服务器: CREATE INDEX idx_lci_owner_status ON public.laser_card_instances USING btree (owner_user_id, status) NOT NULL default=∅ ~ idx_lci_star_created 本地: CREATE INDEX idx_lci_star_created ON public.laser_card_instances USING btree (star_id, created_at DESC) WHERE (deleted_at IS NULL) NOT NULL default=∅ 服务器: CREATE INDEX idx_lci_star_created ON public.laser_card_instances USING btree (star_id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 laser_card_operation_logs ────────────────────────────────────────────────────────────────────────────── 🔄 列定义不同(3): ~ idx_lclog_action_time 本地: CREATE INDEX idx_lclog_action_time ON public.laser_card_operation_logs USING btree (action, created_at DESC) NOT NULL default=∅ 服务器: CREATE INDEX idx_lclog_action_time ON public.laser_card_operation_logs USING btree (action) NOT NULL default=∅ ~ idx_lclog_instance_time 本地: CREATE INDEX idx_lclog_instance_time ON public.laser_card_operation_logs USING btree (instance_id, created_at DESC) NOT NULL default=∅ 服务器: CREATE INDEX idx_lclog_instance_time ON public.laser_card_operation_logs USING btree (instance_id) NOT NULL default=∅ ~ idx_lclog_operator_time 本地: CREATE INDEX idx_lclog_operator_time ON public.laser_card_operation_logs USING btree (operator_user_id, created_at DESC) NOT NULL default=∅ 服务器: CREATE INDEX idx_lclog_operator_time ON public.laser_card_operation_logs USING btree (operator_user_id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 laser_card_templates ────────────────────────────────────────────────────────────────────────────── 🔄 列定义不同(2): ~ idx_lct_status_star 本地: CREATE INDEX idx_lct_status_star ON public.laser_card_templates USING btree (status, star_id) WHERE (deleted_at IS NULL) NOT NULL default=∅ 服务器: CREATE INDEX idx_lct_status_star ON public.laser_card_templates USING btree (status, star_id) NOT NULL default=∅ ~ uk_lct_code_version 本地: CREATE UNIQUE INDEX uk_lct_code_version ON public.laser_card_templates USING btree (template_code, version) WHERE (deleted_at IS NULL) NOT NULL default=∅ 服务器: CREATE UNIQUE INDEX uk_lct_code_version ON public.laser_card_templates USING btree (template_code, version) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 level_cap_config ────────────────────────────────────────────────────────────────────────────── ⚠️ 服务器多列(3)— 本地无: - exp_multiplier numeric NOT NULL default=1.0 - star_id bigint NOT NULL default=∅ - uk_level_cap_config_star CREATE UNIQUE INDEX uk_level_cap_config_star ON public.level_cap_config USING btree (star_id) NOT NULL default=∅ 🔄 列定义不同(1): ~ max_level 本地: integer NOT NULL default=20 服务器: integer NOT NULL default=50 ────────────────────────────────────────────────────────────────────────────── 📋 level_thresholds ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(2): + description character varying NULL default=∅ + like_bet_count integer NOT NULL default=∅ ⚠️ 服务器多列(7)— 本地无: - badge_url character varying NULL default=∅ - exp_requirement bigint NOT NULL default=0 - id bigint NOT NULL default=nextval('level_thresholds_id_seq'::regclass) - privileges jsonb NULL default=∅ - title character varying NULL default=∅ - uk_level_thresholds_level CREATE UNIQUE INDEX uk_level_thresholds_level ON public.level_thresholds USING btree (level) NOT NULL default=∅ - updated_at bigint NOT NULL default=∅ 🔄 列定义不同(2): ~ level_thresholds_pkey 本地: CREATE UNIQUE INDEX level_thresholds_pkey ON public.level_thresholds USING btree (level) NOT NULL default=∅ 服务器: CREATE UNIQUE INDEX level_thresholds_pkey ON public.level_thresholds USING btree (id) NOT NULL default=∅ ~ max_exhibition_hours 本地: bigint NOT NULL default=∅ 服务器: integer NOT NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 level_up_reward_config ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(3): + is_enabled boolean NULL default=true + reward_value bigint NOT NULL default=0 + uk_level_reward_type CREATE UNIQUE INDEX uk_level_reward_type ON public.level_up_reward_config USING btree (level, reward_type) NOT NULL default=∅ ⚠️ 服务器多列(3)— 本地无: - description character varying NULL default=∅ - reward_amount bigint NOT NULL default=0 - uk_level_up_reward_level_type CREATE UNIQUE INDEX uk_level_up_reward_level_type ON public.level_up_reward_config USING btree (level, reward_type) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 level_upgrade_conditions ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(2): + require_dazi_level integer NULL default=0 + require_total_hours bigint NOT NULL default=∅ ⚠️ 服务器多列(4)— 本地无: - condition_type character varying NOT NULL default=∅ - condition_value bigint NOT NULL default=0 - id bigint NOT NULL default=nextval('level_upgrade_conditions_id_seq'::regclass) - uk_level_upgrade_conditions_level_type CREATE UNIQUE INDEX uk_level_upgrade_conditions_level_type ON public.level_upgrade_conditions USING btree (level, condition_type) NOT NULL default=∅ 🔄 列定义不同(1): ~ level_upgrade_conditions_pkey 本地: CREATE UNIQUE INDEX level_upgrade_conditions_pkey ON public.level_upgrade_conditions USING btree (level) NOT NULL default=∅ 服务器: CREATE UNIQUE INDEX level_upgrade_conditions_pkey ON public.level_upgrade_conditions USING btree (id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 materials ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + uk_materials_oss_key CREATE UNIQUE INDEX uk_materials_oss_key ON public.materials USING btree (oss_key) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 mint_cost_config ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + mint_cost_config_mint_count_key CREATE UNIQUE INDEX mint_cost_config_mint_count_key ON public.mint_cost_config USING btree (mint_count) NOT NULL default=∅ ⚠️ 服务器多列(1)— 本地无: - uk_mint_cost_config_mint_count CREATE UNIQUE INDEX uk_mint_cost_config_mint_count ON public.mint_cost_config USING btree (mint_count) NOT NULL default=∅ 🔄 列定义不同(2): ~ probability 本地: bigint NULL default=0 服务器: bigint NOT NULL default=0 ~ reward_value 本地: bigint NULL default=0 服务器: bigint NOT NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 mint_milestone_config ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(5): + bonus_reward bigint NOT NULL default=∅ + created_at bigint NOT NULL default=∅ + milestone_count integer NOT NULL default=∅ + star_id bigint NOT NULL default=∅ + uk_milestone_star_count CREATE UNIQUE INDEX uk_milestone_star_count ON public.mint_milestone_config USING btree (star_id, milestone_count) NOT NULL default=∅ ⚠️ 服务器多列(6)— 本地无: - description character varying NULL default=∅ - milestone integer NOT NULL default=∅ - reward_amount bigint NOT NULL default=0 - reward_type character varying NOT NULL default=∅ - uk_mint_milestone_config_milestone CREATE UNIQUE INDEX uk_mint_milestone_config_milestone ON public.mint_milestone_config USING btree (milestone) NOT NULL default=∅ - updated_at bigint NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 mint_reward_config ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(4): + base_reward bigint NOT NULL default=0 + is_enabled boolean NULL default=true + mint_reward_config_star_id_key CREATE UNIQUE INDEX mint_reward_config_star_id_key ON public.mint_reward_config USING btree (star_id) NOT NULL default=∅ + star_id bigint NOT NULL default=∅ ⚠️ 服务器多列(6)— 本地无: - description character varying NULL default=∅ - mint_count integer NOT NULL default=∅ - probability bigint NOT NULL default=0 - reward_amount bigint NOT NULL default=0 - reward_type character varying NOT NULL default=∅ - uk_mint_reward_config_mint_count_type CREATE UNIQUE INDEX uk_mint_reward_config_mint_count_type ON public.mint_reward_config USING btree (mint_count, reward_type) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 minting_activities ────────────────────────────────────────────────────────────────────────────── ⚠️ 服务器多列(2)— 本地无: - idx_minting_activities_sort_order CREATE INDEX idx_minting_activities_sort_order ON public.minting_activities USING btree (sort_order DESC) NOT NULL default=∅ - sort_order integer NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 onboarding_stage_config ────────────────────────────────────────────────────────────────────────────── 🔄 列定义不同(1): ~ sort_order 本地: integer NULL default=0 服务器: bigint NULL default=0 ────────────────────────────────────────────────────────────────────────────── 📋 season_decay_config ────────────────────────────────────────────────────────────────────────────── 🔄 列定义不同(1): ~ preserve_percent 本地: bigint NOT NULL default=100 服务器: integer NOT NULL default=100 ────────────────────────────────────────────────────────────────────────────── 📋 task_definitions ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + ix_task_def_star_key CREATE UNIQUE INDEX ix_task_def_star_key ON public.task_definitions USING btree (star_id, task_key) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 user_account_status ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + idx_user_account_status_user_id CREATE INDEX idx_user_account_status_user_id ON public.user_account_status USING btree (user_id) NOT NULL default=∅ 🔄 列定义不同(1): ~ id 本地: bigint NOT NULL default=nextval('user_account_status_id_seq'::regclass) 服务器: bigint NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 user_daily_task_progress ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + ix_daily_progress_user_star_key CREATE UNIQUE INDEX ix_daily_progress_user_star_key ON public.user_daily_task_progress USING btree (user_id, star_id, task_key) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 user_dazi_level ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(2): + dazi_level integer NOT NULL default=1 + uk_dazi_user_star CREATE UNIQUE INDEX uk_dazi_user_star ON public.user_dazi_level USING btree (user_id, star_id) NOT NULL default=∅ ⚠️ 服务器多列(5)— 本地无: - exp bigint NOT NULL default=0 - idx_user_dazi_level_star CREATE INDEX idx_user_dazi_level_star ON public.user_dazi_level USING btree (star_id) NOT NULL default=∅ - idx_user_dazi_level_user CREATE INDEX idx_user_dazi_level_user ON public.user_dazi_level USING btree (user_id) NOT NULL default=∅ - level integer NOT NULL default=1 - uk_user_dazi_level_user_star CREATE UNIQUE INDEX uk_user_dazi_level_user_star ON public.user_dazi_level USING btree (user_id, star_id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 user_mint_count ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + uk_user_mint_star CREATE UNIQUE INDEX uk_user_mint_star ON public.user_mint_count USING btree (user_id, star_id) NOT NULL default=∅ ⚠️ 服务器多列(3)— 本地无: - idx_user_mint_count_star CREATE INDEX idx_user_mint_count_star ON public.user_mint_count USING btree (star_id) NOT NULL default=∅ - idx_user_mint_count_user CREATE INDEX idx_user_mint_count_user ON public.user_mint_count USING btree (user_id) NOT NULL default=∅ - uk_user_mint_count_user_star CREATE UNIQUE INDEX uk_user_mint_count_user_star ON public.user_mint_count USING btree (user_id, star_id) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 user_onboarding_progress ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + ix_onboard_progress_user_key CREATE UNIQUE INDEX ix_onboard_progress_user_key ON public.user_onboarding_progress USING btree (user_id, task_key) NOT NULL default=∅ ────────────────────────────────────────────────────────────────────────────── 📋 users ────────────────────────────────────────────────────────────────────────────── ❌ 服务器缺列(1): + uk_users_mobile_active CREATE UNIQUE INDEX uk_users_mobile_active ON public.users USING btree (mobile) WHERE (deleted_at IS NULL) NOT NULL default=∅