Skip to main content

数据库配置

database:
# 数据库驱动,支持 sqlite, pgx, mysql
#
driver: sqlite

# 数据源,参考驱动文档
#
dsn: /tmp/reactgo.db

DRIVER

driver 是数据库驱动的名称,必须是 sqlite, mysql, pgx 中的一个。

mysql 驱动支持下列的数据库:MySQL, TiDB。 pgx 驱动支持下列的数据库:PostgreSQL, CockroachDB

DSN

dsn 根据 driver 的不同而不同,后面会说明各种数据库的 dsn 写法。

SQLITE

Sqlite 的 dsn 是数据库的文件路径,例如 /tmp/reactgo.db

PGX

PostgreSQL 驱动文档

基本格式:

postgres://username:password@localhost:5432/database_name

MYSQL

MySQL 驱动文档

基本格式:

[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...&paramN=valueN]

在使用 MySQL 驱动时,需要至少指定下面 2 个参数: clientFoundRows=trueparseTime=true

clientFoundRows

clientFoundRows=true causes an UPDATE to return the number of matching rows instead of the number of rows changed.

ReactGO 在更新数据后,为了确保符合预期,会检查更新的行数,例如更新某个用户的地址,在执行完 update 操作后,会检查是否准确的更新了 1 行,不多也不少。如果不指定这个参数, 那么在数据没有改变的情况下(例如新旧地址相同)会返回 0 而不是 1,这将导致检查失败, 认为查询条件不正确。

parseTime

parseTime=true changes the output type of DATE and DATETIME values to time.Time instead of []byte / string. The date or datetime like 0000-00-00 00:00:00 is converted into zero value of time.Time.

这个方便语言之间的交流。