数据库配置
默认是 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