You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi v4多数据库配置:本地用SQLite,Dev/Prod用MySQL

Strapi 4.6.0 多环境数据库配置实现方案

完全可以实现,通过在config/database.js中根据环境变量动态返回对应数据库配置即可,具体修改如下:

修改后的config/database.js代码

module.exports = ({ env }) => {
  // 获取当前环境,默认设为local(本地环境)
  const currentEnv = env('NODE_ENV', 'local');

  // 本地环境使用SQLite
  if (currentEnv === 'local') {
    return {
      connection: {
        client: 'sqlite',
        connection: {
          filename: env('DATABASE_FILENAME', '.tmp/data.db'),
        },
        useNullAsDefault: true,
        pool: {
          min: 2,
          max: 10,
        },
      },
    };
  }

  // 开发(dev)和生产(prod)环境使用MySQL
  return {
    connection: {
      client: 'mysql',
      connection: {
        host: env('DATABASE_HOST'),
        port: env.int('DATABASE_PORT'),
        database: env('DATABASE_NAME'),
        user: env('DATABASE_USERNAME'),
        password: env('DATABASE_PASSWORD'),
        ssl: env.bool('DATABASE_SSL', false),
      },
      pool: {
        min: 2,
        max: 10,
      },
    },
  };
};

配置说明

  1. 环境区分逻辑:通过NODE_ENV环境变量识别当前环境,本地开发时设置为local,开发服务器设为development,生产服务器设为production。
  2. SQLite配置:本地环境自动使用SQLite,默认数据库文件路径为.tmp/data.db,可通过DATABASE_FILENAME环境变量自定义路径,useNullAsDefault是SQLite必填项。
  3. MySQL配置:非本地环境直接复用你原有的MySQL配置,依赖对应的环境变量(如DATABASE_HOST、DATABASE_PASSWORD等)。

环境变量设置

在项目根目录的.env文件中添加对应配置:

  • 本地开发环境(.env):
    NODE_ENV=local
    # 可选:自定义SQLite文件路径
    # DATABASE_FILENAME=./data/local.db
    
  • 开发服务器环境(.env.dev或直接在服务器设置):
    NODE_ENV=development
    DATABASE_HOST=你的开发数据库地址
    DATABASE_PORT=3306
    DATABASE_NAME=dev_db_name
    DATABASE_USERNAME=dev_db_user
    DATABASE_PASSWORD=dev_db_pass
    
  • 生产服务器环境(.env.prod或直接在服务器设置):
    NODE_ENV=production
    DATABASE_HOST=你的生产数据库地址
    DATABASE_PORT=3306
    DATABASE_NAME=prod_db_name
    DATABASE_USERNAME=prod_db_user
    DATABASE_PASSWORD=prod_db_pass
    DATABASE_SSL=true
    

注意事项

  • 确保本地项目已安装SQLite依赖,若未安装执行npm install sqlite3即可。
  • 不同环境的.env文件需妥善保管,避免提交到版本控制系统(.gitignore默认已忽略.env)。
  • 切换环境时,Strapi会自动加载对应数据库配置,无需修改代码。

内容的提问来源于stack exchange,提问作者nicvazquez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:35:15