Strapi v4 在生产中使用 MySql 数据库

Strapi v4 use MySql Database in Production

如何添加 Strapi 在生产中使用 mysql 和本地开发使用 sqlite 的配置?

Strapi v4

  1. 添加 mysql 驱动程序 yarn add mysqlnpm install mysql
  2. 添加 dotenv yarn add dotenvnpm install dotenv
  3. 创建新文件:config/env/production/database.js
  4. 添加以下内容:
module.exports = ({ env }) => ({   connection: {
 client: "mysql",
 connection: {
   host: env("DATABASE_HOST", "localhost"),
   port: env("DATABASE_PORT", 3306),
   database: env("DATABASE_NAME", "default"),
   user: env("DATABASE_USERNAME", "root"),
   password: env("DATABASE_PASSWORD", ""),
 },
 useNullAsDefault: true,   
 }, 
});
  1. 将您的配置添加到生产中的 .env 文件。
  2. Strapi 将选择正确的配置。

1.Add MySQL 驱动 npm 安装 mysql

2.Add sqlite3 驱动 npm install sqlite3

3.Set你的环境文件我们这样做

3.1.    On dev set ENV_PATH=%CD%\..\environment\%USERNAME%-s4.env

3.2.    On server export ENV_PATH=/home/ec2-user/backend/environment/prod.env
  1. 将 env 文件中的 DB_DRIVER 设置为 mysql 或 sqlite3 5.Amend 您的数据库配置文件:

            module.exports = ({ env }) => ({
                connection:env("DB_DRIVER", "mysql")==="mysql"?{
                    client: 'mysql',
                    connection:{
                           host: env("DATABASE_HOST", "localhost"),
                           port: env("DATABASE_PORT", 3306),
                           database: env("DATABASE_NAME", "default"),
                           username: env("DATABASE_USERNAME", "root"),
                           password: env("DATABASE_PASSWORD", ""),
                      }
                    }
                :{
                    client: 'sqlite',
                    connection: {
                      filename: path.join(__dirname, '..', env('DATABASE_FILENAME', '.tmp/data.db')),
                    },
                    useNullAsDefault: true,
                },
            });