如何阻止DDEV覆盖Laravel项目的.env变量及相关配置?
阻止DDEV修改Laravel项目的.env文件
可以直接通过DDEV的配置文件禁用自动修改.env的行为,解决方法如下:
方法一:完全禁用DDEV的配置管理功能
打开项目根目录下的.ddev/config.yaml,添加以下配置:
settings_management: disable: true
添加后启动DDEV,它就不会再修改你的.env文件,所有手动设置的环境变量(比如指向本地MySQL的DB_CONNECTION、DB_HOST等)都会被保留。
方法二:仅保留指定环境变量不被覆盖
如果不想完全禁用DDEV的自动配置,只想保护和本地MySQL相关的变量不被修改,可以用preserve_env_vars指定需要保留的变量:
settings_management: preserve_env_vars: ["DB_CONNECTION", "DB_HOST", "DB_PORT", "DB_DATABASE", "DB_USERNAME", "DB_PASSWORD"]
这样DDEV只会跳过这些变量的修改,其他项目配置仍会自动同步。
补充说明
这个问题出现在DDEV新版本中,是因为新版本默认启用了settings_management功能,自动同步数据库等配置到.env文件;旧版本没有默认开启该功能,所以不会出现覆盖情况。通过上述配置就能自定义这个行为,满足团队里使用本地MySQL的需求。
内容的提问来源于stack exchange,提问作者Len
相关产品推荐
相关产品推荐

