using Microsoft.EntityFrameworkCore; namespace MiGu.DB.Abstractions.Runtime; public interface IActorContext { string Name { get; } } public interface IActorContextAccessor { IActorContext Current { get; set; } } public interface IDataMigrator { int Order { get; } string Name { get; } Task MigrateAsync(DbContext db, CancellationToken ct = default); } /// /// 启动期 Schema 初始化策略。 /// :版本化迁移(发版/现场); /// :按当前模型建库(开发期,改模型需删库重建)。 /// public enum MiGuSchemaMode { Migrate = 0, EnsureCreated = 1 } public sealed class MiGuDbOptions { public string Provider { get; set; } = "sqlite"; public string ConnectionString { get; set; } = ""; public string ContentRootPath { get; set; } = ""; /// Schema 初始化模式,对应配置 Database:SchemaMode。 public MiGuSchemaMode SchemaMode { get; set; } = MiGuSchemaMode.Migrate; /// 为 true 时,Schema 初始化后按 Order 执行全部 IDataMigrator(默认开启)。 public bool ApplyDataMigratorsOnStartup { get; set; } = true; }