using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TeamAAS_VP.Interfaces { /// /// 数据库初始化接口。 /// 提供用于初始化数据库及检查数据库是否存在的抽象方法,适用于应用启动、迁移或初始化流程。 /// 实现者应负责确保初始化过程的幂等性与线程安全,并在发生严重错误时抛出适当异常以便上层处理。 /// public interface IDatabaseInitializer { /// /// 初始化数据库。 /// 在应用程序启动或需要创建/升级数据库结构时调用。实现应执行必要的创建、架构迁移、索引或种子数据填充等操作。 /// 实现应尽可能保证方法的幂等性(重复调用不会产生不一致状态),并对并发调用做好同步处理。 /// void InitializeDatabase(); /// /// 检查目标数据库是否存在并可访问。 /// 用于在执行初始化或迁移前判断数据库是否已存在。实现应尽量以低开销方式进行检查,并在遇到非致命问题时返回 false。 /// 在发生致命错误(例如配置严重错误或权限问题)时,可以抛出异常以便调用方处理。 /// /// /// 如果目标数据库存在且可访问,则返回 true;否则返回 false。 /// bool DatabaseExists(); } }