数据库配置
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
基本格式:
postgres://username:password@localhost:5432/database_name
MYSQL
基本格式:
[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]
在使用 MySQL 驱动时,需要至少指定下面 2 个参数:
clientFoundRows=true
和 parseTime=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 ofDATE
andDATETIME
values totime.Time
instead of[]byte / string
. The date or datetime like0000-00-00 00:00:00
is converted into zero value oftime.Time
.
这个方便语言之间的交流。