Files
orm-cj/src/cli/cli_context.cj
T

31 lines
1.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* 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
}