namespace Database.Migrations;
///
/// 数据库迁移工具
///
public class DatabaseMigrator
{
///
/// 执行数据库迁移SQL脚本
///
public static string GetMigrationScript()
{
return """
-- 数据库迁移:为TransactionCategory表添加IconKeywords字段
-- 检查IconKeywords字段是否已存在
-- 如果字段不存在,则添加
-- SQLite在尝试添加已存在的列时会报错,所以我们需要先检查
-- 由于SQLite不支持IF NOT EXISTS语法用于ALTER TABLE,
-- 我们可以尝试执行并捕获错误
""";
}
///
/// 获取修改Icon字段长度的脚本
///
public static string GetIconFieldLengthMigrationScript()
{
return """
-- SQLite不支持直接修改字段长度
-- 对于现有数据,我们需要确保Icon字段可以存储Iconify标识符(通常50个字符以内)
-- 如果Icon字段存储的是旧的SVG JSON数组,这些数据可能超过50字符
-- 需要的数据迁移逻辑在应用层处理:
-- 1. 清空所有分类的Icon字段(因为旧数据格式不再兼容)
-- 2. 重新通过IconSearchService为分类生成图标
""";
}
}