Skip to main content

数据库配置

默认是 sqlite,它与 mysql 的区别在于它是一个文件,而 mysql 是一个服务,服务就可以针对性的进行一些优化,比如大数据查询等。如果数据量比较大或者业务比较复杂,还是优先使用 mysql。

这里就配置本地开发环境(local-dev)使用 sqlite,生产环境使用 mysql。

安装 mysql 支持

npm i mysql

从 env 读取配置

修改config/database.js文件:

const path = require('path');

module.exports = ({ env }) => ({
connection: {
client: env('DATABASE_CLIENT', 'sqlite'),
connection: {
filename: path.join(__dirname, '..', env('DATABASE_FILENAME', '.tmp/data.db')),
host: env('DATABASE_HOST', '0.0.0.0'),
port: env.int('DATABASE_PORT', 3306),
database: env('DATABASE_NAME', 'strapi'),
user: env('DATABASE_USERNAME', 'root'),
password: env('DATABASE_PASSWORD', '123456'),
},
useNullAsDefault: true,
},
});

这样就实现了 database 的 provider 从 env 配置中读取,包括对应数据库的账号参数。本地开发的.env可以留空,默认就是走 sqlite,生产环境的.env.prod文件则配置好 mysql 的账号参数,比如:

// mysql
MYSQL_DATABASE=strapi
MYSQL_USER=strapi
MYSQL_PASSWORD=strapi
MYSQL_ROOT_PASSWORD=strapi