Connection 选项
- 什么是
ConnectionOptions
- 常用的连接选项
mysql
/mariadb
postgres
/cockroachdb
连接选项sqlite
better-sqlite3
cordova
react-native
nativescript
mssql
mongodb
sql.js
expo
- 连接选项示例
什么是ConnectionOptions
连接选项是你传递给createConnection
或在ormconfig
文件中定义的连接配置。不同的数据库有自己的特定连接选项。
常用的连接选项
-
type
- 数据库类型。你必须指定要使用的数据库引擎。该值可以是"mysql","postgres","mariadb","sqlite", "better-sqlite3","cordova","nativescript","oracle","mssql","mongodb","sqljs","react-native"。此选项是必需的。 -
name
- 连接名。 在使用getConnection(name: string)
或ConnectionManager.get(name: string)
时候需要用到。不同连接的连接名称不能相同,它们都必须是唯一 的。如果没有给出连接名称,那么它将被设置为"default"。 -
extra
- 要传递给底层驱动程序的额外连接选项。如果要将额外设置传递给基础数据库驱动程序,请使用此配置。 -
entities
- 要加载并用于此连接的实体。接受要加载的实体类和目录路径。目录支持 glob 模式。示例:entities: [Post, Category, "entity/*.js", "modules/**/entity/*.js"]
。了解有关entities的更多信息。 -
subscribers
- 要加载并用于此连接的订阅者。接受要加载的实体类和目录。目录支持 glob 模式。示例:subscribers: [PostSubscriber, AppSubscriber, "subscriber/*.js", "modules/**/subscriber/*.js"]
。 -
entitySchemas
- 要加载并用于此连接的实体架构。接受要加载的实体模式类和目录。目录支持 glob 模式。示例:entitySchemas: [PostSchema, CategorySchema, "entity-schema/*.json"
。 -
migrations
- 要加载和用于此连接的迁移。接受要加载的迁移类和目录。目录支持 glob 模式。 示例:migrations: [FirstMigration, SecondMigration, "migration/*.js", "modules/**/migration/*.js"]
. -
logging
- 指示是否启用日志记录。如果设置为true
,则将启用查询和错误日志记录。你还可以指定要启用的不同类型的日志记录,例如["query", "error", "schema"]
。 -
logger
- 记录器,用于日志的记录方式。可能的值是"advanced-console", "simple-console" 和 "file"。默认为"advanced-console"。你还可以指定实现Logger
接口的记录器类。 -
maxQueryExecutionTime
- 如果查询执行时间超过此给定的最大执行时间(以毫秒为单位),则 logger 将记录此查询。 -
namingStrategy
- 命名策略,用于命名数据 库中的表和列。 -
entityPrefix
- 给此数据库连接上的所有表(或集合)加的前缀。 -
dropSchema
- 每次建立连接时删除架构。请注意此选项,不要在生产环境中使用它,否则将丢失所有生产数据。但是此选项在调试和开发期间非常有用。 -
synchronize
- 指示是否在每次应用程序启动时自动创建数据库架构。 请注意此选项,不要在生产环境中使用它,否则将丢失所有生产数据。但是此选项在调试和开发期间非常有用。作为替代方案,你可以使用 CLI 运行 schema:sync 命令。请注意,对于 MongoDB 数据库,它不会创建模式,因为 MongoDB 是无模式的。相反,它只是通过创建索引来同步。 -
migrationsRun
- 指示是否在每次启动应用程序时自动运行迁移。或者,您可以使用 CLI run migrations:run command -
migrationsTableName
- 数据库中将包含有关已执行迁移的信息的表的名称。默认情况下,此表名为"migrations"。 -
cache
- 启用实体结果缓存。你还可以在此处配置缓存类型和其他缓存选项。 -
cli.entitiesDir
- CLI 默认情况下创建实体的目录。 -
cli.migrationsDir
- CLI 默认情况下创建迁移的目录。 -
cli.subscribersDir
- CLI 默认情况下创建订阅者的目录。
mysql
/mariadb
-
url
- 连接 URL -
host
- 数据库 host -
port
- 数据库端口。mysql 默认的端口是3306
. -
username
- 数据库用户名 -
password
- 数据库密码 -
database
- 数据库名 -
charset
- 连接的字符集。这在 MySQL 的 SQL 级别中称为"collation"(如 utf8_general_ci)。如果指定了 SQL 级别的字符集(如 utf8mb4),则使用该字符集的默认排序规则。 (默认值:UTF8_GENERAL_CI)。 -
timezone
- MySQL 服务器上配置的时区。这用于将服务器日期/时间值强制转换为 JavaScript Date 对象,反之亦然。该值可以是local
,Z
或+HHMM
或-HHMM
形式的偏移。 (默认:local
) -
connectTimeout
- 在连接到 MySQL 服务器期间发生超时之前的毫秒数。 (默认值:10000
) -
insecureAuth
- 允许连接到要求旧(不安全)身份验证方法的 MySQL 实例。 (默认值:false
) -
supportBigNumbers
- 处理数据库中的大数字(BIGINT
和DECIMAL
列)时,应启用此选项(默认值:false
) -
bigNumberStrings
- 同时启用supportBigNumbers
和bigNumberStrings
会强制将大数字(BIGINT
和DECIMAL
列)作为 JavaScript String 对象返回(默认值:false
)。启用supportBigNumbers
但禁用bigNumberStrings
仅当它们无法用 JavaScript Number 对象准确表示时才会返回大数字作为 String 对象(当它们超过[-2^53,+2^53]
范围时会发生),否则它们将被返回作为数字对象。如果禁用了supportBigNumbers
,则忽略此选项。 -
dateStrings
- 强制日期类型(TIMESTAMP
,DATETIME
,DATE
)作为字符串返回,而不是转换为 JavaScript Date 对象。可以是 true/false 或要保留为字符串的类型名称数组。 (默认值:false
) -
debug
- 将协议详细信息打印到 stdout。可以是 true/false 或应打印的数据包类型名称数组。 (默认值:false
) -
trace
- 在 Error 上生成堆栈跟踪,包括库入口的调用站点("long stack traces")。对大多调用来说,性能损失很轻。 (默认值:true
) -
multipleStatements
- 每个查询允许多个 mysql 语句。请注意,它可能会增加 SQL 注入攻击的范围。 (默认值:false
) -
legacySpatialSupport
- Use spatial functions like GeomFromText and AsText which are removed in MySQL 8. (Default: true) -
flags
- 使用非默认连接标志的连接标志列表。也可以将默认值列入黑名单。有关更多信息,请查看Connection Flags。 -
ssl
- 带有 ssl 参数的对象或包含 ssl 配置文件名称的字符串。请参阅SSL 选项。