31 lines
1.0 KiB
Plaintext
31 lines
1.0 KiB
Plaintext
/*
|
||
* Copyright (c) 2025 SimcuTeam. All rights reserved.
|
||
* CLI 上下文契约:MigrationCli 只依赖本接口,不依赖 simcu::orm.db,
|
||
* 从而避免 db → cli 与 cli → db 的包循环依赖。
|
||
*
|
||
* DbContext 实现本接口(DbContext.cli(args) 内部把 this 传给 MigrationCli.runOn)。
|
||
*/
|
||
|
||
package simcu::orm.cli
|
||
|
||
import std.collection.*
|
||
import std.database.sql.*
|
||
import simcu::orm.migrations.*
|
||
import simcu::orm.model.*
|
||
import simcu::orm.sql.*
|
||
|
||
public interface CliContext {
|
||
/// 模型列表(由实例的 DbSet<T> 属性反射收集)
|
||
func getModels(): ArrayList<EntityModel>
|
||
/// 应用主数据源
|
||
func getDatasource(): Datasource
|
||
/// SQL 方言
|
||
func getDialect(): SqlDialect
|
||
/// 迁移列表(子类 override migrations() 提供)
|
||
func getMigrations(): ArrayList<Migration>
|
||
/// 应用所有迁移
|
||
func migrateAll(migrations: ArrayList<Migration>): Int64
|
||
/// 数据填充运行上下文:返回应用自己的 DbContext 实例(seed 的 run(ctx) 参数)
|
||
func getSeedContext(): Any
|
||
}
|