Merge branch 'master' into business
智能大石头 编写于 2024-04-07 21:57:51
AntJob
<?xml version="1.0" encoding="utf-8"?>
<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model202309.xsd" Document="https://newlifex.com/xcode/model" xmlns="https://newlifex.com/Model202309.xsd">
    <Option>
        <!--类名模板。其中{name}替换为Table.Name,如{name}Model/I{name}Dto等-->
        <ClassNameTemplate />
        <!--显示名模板。其中{displayName}替换为Table.DisplayName-->
        <DisplayNameTemplate />
        <!--基类。可能包含基类和接口,其中{name}替换为Table.Name-->
        <BaseClass>Entity</BaseClass>
        <!--命名空间-->
        <Namespace>AntJob.Data.DataSync</Namespace>
        <!--输出目录-->
        <Output>.\</Output>
        <!--是否使用中文文件名。默认false-->
        <ChineseFileName>False</ChineseFileName>
        <!--用于生成Copy函数的参数类型。例如{name}或I{name}-->
        <ModelNameForCopy />
        <!--带有索引器。实现IModel接口-->
        <HasIModel>False</HasIModel>
        <!--可为null上下文。生成String?等-->
        <Nullable>False</Nullable>
        <!--数据库连接名-->
        <ConnName>DataSync</ConnName>
        <!--模型类模版。设置后生成模型类,用于接口数据传输,例如{name}Model-->
        <ModelClass />
        <!--模型类输出目录。默认当前目录的Models子目录-->
        <ModelsOutput>.\Models\</ModelsOutput>
        <!--模型接口模版。设置后生成模型接口,用于约束模型类和实体类,例如I{name}-->
        <ModelInterface />
        <!--模型接口输出目录。默认当前目录的Interfaces子目录-->
        <InterfacesOutput>.\Interfaces\</InterfacesOutput>
        <!--用户实体转为模型类的模型类。例如{name}或{name}DTO-->
        <ModelNameForToModel />
        <!--命名格式。Default/Upper/Lower/Underline-->
        <NameFormat>Default</NameFormat>
        <!--魔方区域显示名-->
        <DisplayName>数据同步</DisplayName>
        <!--魔方控制器输出目录-->
        <CubeOutput>../../AntJob.Web/Areas/DataSync</CubeOutput>
    </Option>
    <Tables>
        <Table Name="DataSource" Description="数据源。记录各种数据库">
            <Columns>
                <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
                <Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称" />
                <Column Name="Enable" DataType="Boolean" Description="启用" />
                <Column Name="DbType" DataType="Int32" Description="数据库类型" Type="XCode.DataAccessLayer.DatabaseType" />
                <Column Name="Server" DataType="String" Description="服务器。含端口" />
                <Column Name="Database" DataType="String" Description="数据库" />
                <Column Name="Schema" DataType="Int32" Description="模式" Type="AntJob.Data.Util.SchemaTypes" />
                <Column Name="Account" DataType="String" Description="账号" />
                <Column Name="Password" DataType="String" Description="密码" />
                <Column Name="DBModel" DataType="String" RawType="Text" Length="-1" Description="库模型" />
                <Column Name="CreateUserID" DataType="Int32" Description="创建人" Category="扩展" />
                <Column Name="CreateUser" DataType="String" Description="创建者" Category="扩展" />
                <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
                <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
                <Column Name="UpdateUserID" DataType="Int32" Description="更新人" Category="扩展" />
                <Column Name="UpdateUser" DataType="String" Description="更新者" Category="扩展" />
                <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
                <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
                <Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
            </Columns>
            <Indexes>
                <Index Columns="Name" Unique="True" />
                <Index Columns="DbType" />
            </Indexes>
        </Table>
        <Table Name="MetaSync" Description="数据同步。每个同步配置,对应一个调度作业">
            <Columns>
                <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
                <Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称" />
                <Column Name="IgnoreTable" DataType="String" Description="忽略同步表。与同步表映射共同生效" />
                <Column Name="MapTable" DataType="String" Description="同步表映射。仅同步指定表,并映射到目标库,映射关系:分号分割映射表,逗号分割多组映射" />
                <Column Name="SourceId" DataType="Int32" Map="DataSource@Id@Name@SourceName" Description="源库" />
                <Column Name="TargetId" DataType="Int32" Map="DataSource@Id@Name@TargetName" Description="目标库" />
                <Column Name="ErrorNum" DataType="Int32" Description="错误重试" />
                <Column Name="Enable" DataType="Boolean" Description="启用" />
                <Column Name="TaskId" DataType="Int32" Description="管理任务。用于扫描源库的表信息变更,例如新增表和新增字段" />
                <Column Name="LastTime" DataType="DateTime" Description="最后同步时间" />
                <Column Name="IsAllCopy" DataType="Boolean" Description="原样拷贝,不会生成单独的表配置" Category="模型" />
                <Column Name="IsAllSync" DataType="Boolean" Description="整库同步,会自动创建定时任务同步表模型" Category="模型" />
                <Column Name="DBModel" DataType="String" RawType="Text" Length="-1" Description="库模型" Category="模型" />
                <Column Name="CreateUserID" DataType="Int32" Description="创建人" Category="扩展" />
                <Column Name="CreateUser" DataType="String" Description="创建者" Category="扩展" />
                <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
                <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
                <Column Name="UpdateUserID" DataType="Int32" Description="更新人" Category="扩展" />
                <Column Name="UpdateUser" DataType="String" Description="更新者" Category="扩展" />
                <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
                <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
                <Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
            </Columns>
            <Indexes>
                <Index Columns="Name" Unique="True" />
                <Index Columns="Enable" />
            </Indexes>
        </Table>
        <Table Name="MetaTable" Description="数据表">
            <Columns>
                <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
                <Column Name="SourceTableName" DataType="String" Description="源表名" />
                <Column Name="SourceTablePrefix" DataType="String" Description="源表前缀" />
                <Column Name="TargetTableName" DataType="String" Description="目标表名" />
                <Column Name="TargetTablePrefix" DataType="String" Description="目标表前缀" />
                <Column Name="MaxRows" DataType="Int32" Description="最大行数。数据表最大行数,小于10万行时,只用全量同步(清空并批量插入)" />
                <Column Name="SyncMode" DataType="Int32" Description="同步模式。全量同步、增量同步" Type="AntJob.Data.Util.SyncModelTypes" />
                <Column Name="SyncField" DataType="Int32" Description="同步字段。大于10万行且增量同步时,需要根据自增Id、雪花Id或更新时间字段去抽取s" />
                <Column Name="IgnoreField" DataType="String" Length="1000" Description="忽略字段。忽略不需要同步的字段,与字段映共同生效" />
                <Column Name="FieldMap" DataType="String" Length="1000" Description="字段映射。仅同步指定字段,并映射到目标库的另一个字段" />
                <Column Name="WhereSql" DataType="String" Length="200" Description="条件字句。仅同步满足条件的数据" />
                <Column Name="CreateSql" DataType="String" Length="1000" Description="建表语句" />
                <Column Name="MetaSyncID" DataType="Int32" Description="数据同步" />
                <Column Name="TaskID" DataType="Int32" Description="任务编号" />
                <Column Name="LastTime" DataType="DateTime" Description="最后时间" />
                <Column Name="Enable" DataType="Boolean" Description="启用" />
                <Column Name="CreateUserID" DataType="Int32" Description="创建人" Category="扩展" />
                <Column Name="CreateUser" DataType="String" Description="创建者" Category="扩展" />
                <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
                <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
                <Column Name="UpdateUserID" DataType="Int32" Description="更新人" Category="扩展" />
                <Column Name="UpdateUser" DataType="String" Description="更新者" Category="扩展" />
                <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
                <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
                <Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
            </Columns>
            <Indexes>
                <Index Columns="MetaSyncID,SourceTableName,TargetTableName" Unique="True" />
                <Index Columns="Enable" />
            </Indexes>
        </Table>
    </Tables>
</EntityModel>