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

如何在Docker Compose中配置生产与测试双数据库

解决方案

1. 在运行的SQL容器中直接创建测试库

不用重启容器、不用动数据卷,直接给正在运行的数据库加测试库:

  • 先查SQL容器名:docker ps,比如结果里的容器名是laravel_db_1
  • 进入容器的MySQL命令行:docker exec -it laravel_db_1 mysql -u root -p,输入你在docker-compose.yml里设置的MYSQL_ROOT_PASSWORD密码
  • 创建测试库:CREATE DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 给Laravel用的数据库用户授权(如果你的业务用户不是root,比如叫laravel):GRANT ALL PRIVILEGES ON test.* TO 'laravel'@'%'; FLUSH PRIVILEGES;
    执行完这些,测试库就建好了,生产库的数据完全没影响。

2. 配置Laravel多数据库连接

修改项目根目录的.env文件,保留原生产库配置,新增测试库的配置项:

# 原有生产库配置
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=production
DB_USERNAME=laravel
DB_PASSWORD=your_db_password

# 新增测试库配置
DB_TEST_CONNECTION=mysql
DB_TEST_HOST=db
DB_TEST_PORT=3306
DB_TEST_DATABASE=test
DB_TEST_USERNAME=laravel
DB_TEST_PASSWORD=your_db_password

接着修改config/database.php,在connections数组里添加测试库的连接配置:

'test' => [
    'driver' => env('DB_TEST_CONNECTION', 'mysql'),
    'host' => env('DB_TEST_HOST', '127.0.0.1'),
    'port' => env('DB_TEST_PORT', '3306'),
    'database' => env('DB_TEST_DATABASE', 'forge'),
    'username' => env('DB_TEST_USERNAME', 'forge'),
    'password' => env('DB_TEST_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
],

之后你就可以在Laravel中切换使用两个库,比如给测试库跑迁移:php artisan migrate --database=test,填充测试数据:php artisan db:seed --database=test。

3. DBeaver中直接切换数据库

打开DBeaver连接你的SQL容器后,左侧导航栏会直接显示production和test两个数据库,点击对应的库就能直接切换操作,不需要修改任何连接配置。

额外提醒

  • 后续如果需要重置测试库,直接在DBeaver或者MySQL命令行里删除重建即可,不会影响生产库的数据。
  • 除非要彻底清空所有数据库数据,否则别再执行docker compose down -v,避免误删生产数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:18:20