如何在DDEV容器首次创建后自动导入自定义SQL文件至默认数据库
解决Ddev容器创建后自动导入自定义SQL文件的问题
下面给你两种靠谱的实现方式,替代你之前用web命令的尝试:
方法一:用Ddev自带的数据库初始化目录
- 在项目根目录下创建
.ddev/db-build文件夹 - 将你的
my.sql文件直接放到这个目录中 - 下次执行
ddev start或者重新构建容器时,Ddev会自动在数据库就绪后导入该文件,无需额外配置
方法二:通过hooks自定义执行逻辑(适合需要额外导入操作的场景)
- 编辑项目根目录下的
.ddev/config.yaml文件,添加post-start钩子:
hooks: post-start: - exec: mysql -u db -pdb db < /var/www/html/sql/my.sql
- 这样每次容器启动完成后,都会自动执行这条SQL导入命令
为啥之前的方法不生效?
.ddev/commands/web 目录下的脚本是手动触发命令,需要你执行 ddev [脚本名] 才会运行,不会在容器创建/启动时自动执行,所以之前的配置无法达到自动导入的效果。
内容的提问来源于stack exchange,提问作者user2710464
相关产品推荐
相关产品推荐

