typeorm之BaseConnectionOptions

 

src/connection/BaseConnectionOptions.ts

//基本连接选项接口,由特定数据库的连接选项实现
export interface BaseConnectionOptions {
    //数据库类型,"mysql"| "postgres"|"mariadb"|"sqlite"|"cordova"|"sqljs"|"oracle"|"mssql"|"websql"|"mongodb";
    readonly type: DatabaseType;
    //连接名称
    readonly name?: string;
    //被连接加载的实体,支持实体类与目录、文件名
    readonly entities?: Function[]|string[];
    //订阅类数组,可以是类或者目录
    readonly subscribers?: Function[]|string[];
    //实体模式数组
    readonly entitySchemas?: EntitySchema[]|string[];
    //迁移类数组
    readonly migrations?: Function[]|string[];
    //命名策略
    readonly namingStrategy?: NamingStrategyInterface;
    //日志选项, boolean|"all"|("query"|"schema"|"error"|"warn"|"info"|"log"|"migration")[]
    //指定了对指定数据库操作、指定级别显示日志
    readonly logging?: LoggerOptions;
    //日志方式,控制台、文件
    readonly logger?: "advanced-console"|"simple-console"|"file"|"debug"|Logger;
    //最大查询执行时间,毫秒
    readonly maxQueryExecutionTime?: number;
    //是否同步,指明是否每次应用程序启动时会对比数据库表与实体类,会保证实体类属性与表列对应,除了删除列,不会删除数据
    readonly synchronize?: boolean;
    //指明是否所有的migrations会在应用程序启动时自动运行
    readonly migrationsRun?: boolean;
    //每次连接建立删除实体对应的数据库表
    readonly dropSchema?: boolean;
    //这个连接对应的数据库表前缀
    readonly entityPrefix?: string;
    //扩展参数
    readonly extra?: any;
    //缓存选项
    readonly cache?: boolean|{
        //缓存类型,数据库存储,或者redis存储
        readonly type?: "database"|"redis";
        readonly options?: any;
        //是否所有find与QueryBuilder方法结果都会被缓存
        readonly alwaysEnabled?: boolean;
        //缓存过期的毫秒数
        readonly duration?: number;
    };
    //命令行设置
    readonly cli?: {
        //创建实体的目录
        readonly entitiesDir?: string;
        //创建Migration的目录
        readonly migrationsDir?: string;
        //创建Subscript的目录
        readonly subscribersDir?: string;
    };
}


基本连接选项,被特定数据库实现,如:

 

 

src/driver/mysql/MysqlConnectionOptions.ts

//Mysql的连接选项,包含特定于Mysql的选项
export interface MysqlConnectionOptions extends BaseConnectionOptions, MysqlConnectionCredentialsOptions {
    //类型两种
    readonly type: "mysql"|"mariadb";
    //连接编码,在sql级别进行校对
    readonly charset?: string;
    //mysql服务器使用的时区,用来将服务器时间类型转换为JsDate对象
    readonly timezone?: string;
    //连接超时毫秒数
    readonly connectTimeout?: number;
    //允许使用老的不安全的认证方法连接到数据库
    readonly insecureAuth?: boolean;
    //是否支持BIGINT类型等
    readonly supportBigNumbers?: boolean;
    //大的数字会被强制以字符串类型返回
    readonly bigNumberStrings?: boolean;
    //是否强制所有日期类型以字符串对象返回,而不是以JSDate对象返回,也可以为类型名称数组,三个类型:TIMESTAMP、DATETIME、DATE
    readonly dateStrings?: boolean|string[];
    //打印详细调试信息
    readonly debug?: boolean|string[];
    //打印错误的堆栈追踪
    readonly trace?: boolean;
    //允许多语句预查询?
    readonly multipleStatements?: boolean;
    //标志数组
    readonly flags?: string[];
    //主从复制设置
    readonly replication?: {
        //执行写操作的主服务器选项
        readonly master: MysqlConnectionCredentialsOptions;
        //执行读操作的从服务器选项数组
        readonly slaves: MysqlConnectionCredentialsOptions[];
        //连接失败是否尝试重连
        readonly canRetry?: boolean;
        //是否移除错误节点
        readonly removeNodeErrorCount?: number;
        //重置节点超时,即一个节点多久连接不上,转到另一个节点处理
        readonly restoreNodeTimeout?: number;
        //从节点如何选择,轮流选择、随机选择、按顺序选择(每次选择第一个节点)
        readonly selector?: "RR"|"RANDOM"|"ORDER";
    };
}
src/driver/mysql/MysqlConnectionCredentialsOptions.ts

//Mysql证书选项
export interface MysqlConnectionCredentialsOptions {
    //mysql连接url
    readonly url?: string;
    //域名
    readonly host?: string;
    //端口号
    readonly port?: number;
    //用户名
    readonly username?: string;
    //密码
    readonly password?: string;
    //数据库名
    readonly database?: string;
    //启用ssl连接
    readonly ssl?: any;
}


其中比较特别的就是主从复制配置了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值