Memos 支持以下数据库类型:
- SQLite(默认)
- MySQL(从版本 0.16.1 开始支持)
- PostgreSQL(从版本 0.18.0 开始支持)
Memos 支持以下数据库类型:
Memos还支持哪些数据库类型?
Memos 支持以下数据库类型:
推荐使用 MySQL 8.0 或更高版本。默认字符集和排序规则分别为
utf8mb4
和utf8mb4_unicode_ci
。
默认情况下,Memos 使用 SQLite 作为默认数据库驱动。如果需要切换到 MySQL,可按照以下步骤操作:
mysql
驱动,而不是默认的 sqlite
驱动。您可以通过以下命令使用 Docker 启动 Memos:
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable --driver mysql --dsn 'root:password@tcp(localhost)/memos_prod'
或者,您可以通过环境变量配置这些参数:
MEMOS_DRIVER=mysql
MEMOS_DSN=root:password@tcp(localhost)/memos_prod
从版本 0.18.0 开始,Memos 也支持使用 PostgreSQL 作为数据库驱动。如果需要切换到 PostgreSQL,可按照以下步骤操作:
postgres
驱动,而不是默认的 sqlite
驱动。您可以通过以下命令使用 Docker 启动 Memos:
docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable --driver postgres --dsn 'postgresql://postgres:PASSWORD@localhost:5432/memos'
或者,您可以通过环境变量配置这些参数:
MEMOS_DRIVER=postgres
MEMOS_DSN=postgresql://root:password@localhost:5432/memos
注意:如果 PostgreSQL 服务器未配置支持 SSL 连接,则需要在 DSN 中添加
?sslmode=disable
。
选择最适合您需求的数据库驱动,并相应配置 Memos。
以下 compose.yml
示例展示了如何将 Memos 与 PostgreSQL 数据库结合使用。
version: "3.0"
services:
memos:
image: neosmemo/memos:stable
restart: always
depends_on:
- db
ports:
- 5230:5230
environment:
- MEMOS_DRIVER=postgres
- MEMOS_DSN=user=memos password=secret dbname=memosdb host=db sslmode=disable
db:
image: postgres:16.1
restart: unless-stopped
volumes:
- "./database:/var/lib/postgresql/data/"
environment:
POSTGRES_USER: memos
POSTGRES_PASSWORD: secret
POSTGRES_DB: memosdb
您可以使用某种脚本语言完成数据迁移。例如,我使用 ChatGPT 帮助我实现了一个 SQLite 到 MySQL 的 Python 脚本:SQLite 到 MySQL 数据迁移。
类似地,您也可以编写一个 SQLite 到 PostgreSQL 的脚本。