【发布时间】:2021-07-23 15:25:46
【问题描述】:
我刚刚完成了 DDEV 设置,并且通过手动运行 ddev import-db --target-db=[db-name] 进行了多站点工作。它工作得很好,但我想弄清楚如何从 Acquia 获取数据库拉取,以便我可以指定要从中提取的站点。
我有这个脚本可以运行,但是有没有办法使用 DDEV 命令来做到这一点,这样会更干净一点?
首先我将 acquia.yaml 修改为:
environment_variables:
project_id: mysite.dev
uri: mysite.com
db_name: mysite_us
#uri: mysite.ca
#db_name: mysite_canada
#uri: mysite.co.uk
#db_name: mysite_unitedkingdom
# etc etc
db_pull_command:
command: |
# set -x # You can enable bash debugging output by uncommenting
ls /var/www/html/.ddev >/dev/null # This just refreshes stale NFS if possible
pushd /var/www/html/.ddev/.downloads >/dev/null
acli remote:drush -n ${project_id} -- sql-dump --extra-dump=--no-tablespaces --uri=${uri} >${db_name}.sql
然后我编写了以下脚本,我称之为:
./ddev-refresh-db.sh mysite_us mysite.com
#!/bin/bash
site="$1"
uri="$2"
ddev pull acquia
ddev import-db --target-db=${site} --src=.ddev/.downloads/${site}.sql
ddev drush --uri=${uri} cr
但是,这仍然需要我们在运行此命令之前更改 acquia.yaml 文件中的站点和 URI。
有没有办法将变量传递给 ddev pull acquia ?还有一种方法可以用真实的 DDEV 命令模拟这个脚本正在做什么?
【问题讨论】: