-- 已有数据库执行一次,先迁移,再部署后端,最后发布 Android。 -- 用户确认:历史空昵称统一允许初始化;之后的主动清空由状态字段保护。 ALTER TABLE tpl_app_user_devices ADD COLUMN display_name_initialized TINYINT(1) NOT NULL DEFAULT 0 COMMENT '昵称已设置或主动清空,阻止自动初始化覆盖' AFTER display_name; -- 保留已有昵称,并避免迁移改变设备最后活跃时间。 UPDATE tpl_app_user_devices SET display_name_initialized = 1, updated_at = updated_at WHERE display_name <> '';