切换数据库
约 315 字大约 1 分钟
警告
fba 自 v1.10.0 开始,已将默认数据库由 MySQL 替换为 PostgreSQL
fba 支持 PostgreSQL、MySQL 两种数据库,默认配置使用 PostgreSQL
Docker 镜像
如果你未在本地安装或习惯使用 Docker 镜像,
PostgreSQL
docker run -d \
--name fba_postgres \
--restart always \
-e POSTGRES_DB='fba' \
-e POSTGRES_PASSWORD='123456' \
-e TZ='Asia/Shanghai' \
-v fba_postgres:/var/lib/postgresql/data \
-p 5432:5432 \
postgres:16MySQL
docker run -d \
--name fba_mysql \
--restart always \
-e MYSQL_DATABASE=fba \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-v fba_mysql:/var/lib/mysql \
-p 3306 \
mysql:8.0.41 \
--default-authentication-plugin=mysql_native_password \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci \
--lower_case_table_names=1环境配置
PostgreSQL 与 MySQL 在用户名、端口号等方面有所不同,如果你使用上面的命令创建了 Docker 镜像,需修改 .env 部分配置如下,否则,请根据实际配置进行修改
PostgreSQL
# Database
DATABASE_TYPE='postgresql'
DATABASE_HOST='127.0.0.1'
DATABASE_PORT=5432
DATABASE_USER='postgres'
DATABASE_PASSWORD='123456'MySQL
# Database
DATABASE_TYPE='mysql'
DATABASE_HOST='127.0.0.1'
DATABASE_PORT=3306
DATABASE_USER='root'
DATABASE_PASSWORD='123456'解耦
- 删除
with_variant相关代码(如果存在),仅保留数据库对应的类型 - 删除
backend/core/conf.py文件中的DATABASE_TYPE及其相关的调用代码 - 删除
.env_example和.env文件中的DATABASE_TYPE - 更新
backend/templates/py/model.jinja文件中的database_type相关代码 - 删除
backend/sql目录中的postgresql或mysql文件夹 - 删除
docker-compose.yml文件中的fba_postgres或fba_mysql容器脚本


