两个DDEV Laravel项目能否共享单个数据库实例?
在DDEV中让两个Laravel项目共享数据库实例的实现方案
完全可行,你提到的使用docker-compose.db-override.yaml配置项目B是正确的思路,具体操作步骤如下:
1. 确认项目A的数据库容器信息
- 正常启动项目A:
ddev start - 执行
ddev describe查看数据库容器名称(格式通常为ddev-<项目A名称>-db),以及数据库的用户名、密码、库名(默认都是db,如果有自定义需记录)
2. 配置项目B连接项目A的数据库容器
在项目B的.ddev目录下创建docker-compose.db-override.yaml文件,内容如下(替换<项目A名称>为实际项目A的DDEV项目名):
version: '3.6' services: db: external: name: ddev-<项目A名称>-db
3. 修改项目B的数据库连接配置
编辑项目B根目录下的.env文件,配置与项目A一致的数据库连接信息:
DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=db DB_USERNAME=db DB_PASSWORD=db
如果项目A使用了自定义的数据库名、用户名或密码,替换为对应的值即可。
4. 启动项目B
执行ddev start启动项目B,此时项目B会直接关联项目A的数据库容器,两个项目可以同时运行。
注意事项
- 确保两个项目处于同一DDEV网络(默认都是
ddev_default,无需额外配置) - 必须先启动项目A创建数据库容器,再启动项目B,否则项目B会因找不到数据库容器报错
- 数据库迁移、种子等初始化操作仅需在项目A中执行,项目B直接读取已有数据即可
内容的提问来源于stack exchange,提问作者Stefano
相关产品推荐
相关产品推荐

