多数据库服务支持

大约 4 分钟...

除了官方默认的 LeanCloud 之外,Waline 还支持多种数据库,包括 MySQL, PostgreSQL, SQLite 以及 MongoDB。

你只需配置对应的数据库的环境变量,Waline 会自动根据你配置的环境变量切换到对应的数据存储服务。

MongoDB

https://mongodb.comopen in new window 官网免费提供了 512M 的 MongoDB 数据库支持。以下是使用 MongoDB 存储需要配置的环境变量。

环境变量名称必填默认值备注
MONGO_HOST127.0.0.1MongoDB 服务的地址,支持数组格式
MONGO_PORT27017MongoDB 服务的端口,支持数组格式
MONGO_DBMongoDB 数据库名称
MONGO_USERMongoDB 服务的用户名
MONGO_PASSWORDMongoDB 服务的密码
MONGO_REPLICASETMongoDB 集群
MONGO_AUTHSOURCEMongoDB 认证源
MONGO_OPT_SSL是否使用 SSL 进行连接

以下是使用 mongodb.com 官方服务的配置示例,多机需要将 MONGO_HOSTMONO_PORT 配置成 JSON 格式。

MONGO_HOST=["cluster0-shard-00-00.p4edw.mongodb.net","cluster0-shard-00-01.p4edw.mongodb.net","cluster0-shard-00-02.p4edw.mongodb.net"]
MONGO_PORT=[27017,27017,27017,27017]
MONGO_DB=waline
MONGO_USER=admin
MONGO_PASSWORD=xxxx
MONGO_REPLICASET=atlas-12cebf-shard-0
MONGO_AUTHSOURCE=admin
MONGO_OPT_SSL=true

MySQL

使用 MySQL 存储数据也是一个很好的选择,除了使用自建的 MySQL 服务之外,我们也可以使用 PlanetScaleopen in new window,它免费提供了 10GB 的数据库支持。或者 https://freedb.techopen in new window,它免费提供了 100M 的数据库支持。

使用时请先导入 waline.sqlopen in new window 以完成表和表结构的创建,之后在项目中配置如下环境变量。

环境变量名称必填默认值备注
MYSQL_HOST127.0.0.1MySQL 服务的地址
MYSQL_PORT3306MySQL 服务的端口
MYSQL_DBMySQL 数据库库名
MYSQL_USERMySQL 数据库的用户名
MYSQL_PASSWORDMySQL 数据库的密码
MYSQL_PREFIXwl_MySQL 数据表的表前缀
MYSQL_CHARSETutf8mb4MySQL 数据表的字符集
MYSQL_SSL是否使用 SSL MYSQL 连接数据库

SQLite

使用 SQLite 时需要下载 waline.sqliteopen in new window 文件至合适的位置。之后在项目中配置如下环境变量。

环境变量名称必填默认值备注
SQLITE_PATHSQLite 数据库文件的路径,该路径不包含文件名本身
SQLITE_DBwalineSQLite 数据库文件名,若文件名变化需要修改该字段值
SQLITE_PREFIXwl_SQLite 数据表的表前缀
JWT_TOKEN用户登录密钥,随机字符串即可

PostgreSQL

elephantSQLopen in new window 提供了 20M 的免费空间,对于评论服务来说绰绰有余了。如果想要使用 PostgreSQL 的也可以使用它搭建 Waline。

同 MySQL,使用 PostgreSQL 也需要先导入 waline.pgsqlopen in new window 创建好表和表结构。之后在项目中配置如下环境变量。

环境变量名称必填默认值备注
PG_HOST127.0.0.1PostgreSQL 服务的地址
PG_PORT3211PostgreSQL 服务的端口
PG_DBPostgreSQL 数据库库名
PG_USERPostgreSQL 数据库的用户名
PG_PASSWORDPostgreSQL 数据库的密码
PG_PREFIXwl_PostgreSQL 数据表的表前缀
PG_SSL是否使用 SSL 连接 PostgreSQL 数据库

CloudBase

腾讯云开发也提供了一定的 免费数据库open in new window 支持,即使不部署在腾讯云开发上也可以使用。如果部署在腾讯云开发上,不需要配置任何环境变量,Waline 默认会使用云开发的数据库。如果是部署在其它地方,需要配置以下环境变量。

环境变量名称必填默认值备注
TCB_ENV腾讯云开发环境 ID
TCB_ID腾讯云 API 密钥 ID,在此open in new window获取
TCB_KEY腾讯云 API 密钥 Key,在此open in new window获取
JWT_TOKEN用户登录密钥,如果没有配任何环境变量的话需要配置此变量,随机字符串即可

GitHub

Waline 支持将评论数据以 CSV 文件的格式存储在 GitHub 仓库中。使用 GitHub 作为数据存储需要申请 Personal access tokens,可在 https://github.com/settings/tokensopen in new window 这里点击 Generate new token 进行申请,下方权限选项中勾选上 repo 选项,用于获得仓库的读写权限。

环境变量名称必填默认值备注
GITHUB_TOKENPersonal access tokensopen in new window
GITHUB_REPO仓库名称,例如 walinejs/waline
GITHUB_PATH数据存储目录,例如 data 表示存储在 data 目录下,默认存在仓库根目录下

注意

处于国内 Github 服务访问稳定性与 CSV 读取与存储性能的原因,我们不建议国内用户使用 Github 作为存储库。

Deta Base

Deta 提供了 Deta Baseopen in new window 免费数据库支持,即使不部署在 Deta 上也可以使用。如果部署在 Deta 上,不需要配置任何环境变量,Waline 默认会使用 Deta Base 作为数据库存储数据。如果是部署在其它地方,需要配置以下环境变量。

环境变量名称必填默认值备注
DETA_PROJECT_KEYDeta 项目密钥

更多

除了以上数据库存储之外,waline 也能够很方便的扩展其它存储服务。

如果你想帮助 Waline 支持更多的存储服务的话,可以 Fork 项目,继承该 基类open in new window 后分别实现对应存储服务的 select(), add(), update(), delete() 方法后提交 PR 即可。

友情提示:评论区仅作评论展示,如有问题咨询请去 Github Discussion 中提问。
评论
Powered by Waline v2.6.1