关于 pull-push
pull-push 是一项介绍使用 Acquia CLI 在本地环境与 Acquia Cloud Platform 之间同步代码、数据库和文件的 skill,涵盖按需拉取、推送数据库与文件,以及面向 ACE 订阅的构建产物部署。
主要功能
- 01拉取代码、数据库和文件
- 02选择拉取内容及选项
- 03向 Cloud 推送数据库和文件
- 04构建并部署代码产物
- 05运行拉取后脚本
适用场景
- 01刷新本地 Drupal 开发环境
- 02导入最新的 Cloud 数据库备份
- 03向 Cloud 环境部署构建产物
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ acquia/ acquia-skills --skill pull-push安装后在 Claude Code 中输入/pull-push确认已加载。
详细介绍
使用 Acquia CLI 拉取与推送
平台: 此技能仅适用于 ACE(Acquia Cloud Enterprise) 订阅。 有关 MEO(Multi-site Enterprise Operations),请参阅 MEO 站点实例,了解数据库和文件操作。
适用于:
- 将本地环境与 Cloud Platform 环境同步
- 从 Cloud 将代码、数据库或文件拉取到本地
- 将代码、数据库、文件或构建产物推送到 Cloud
拉取:从 Cloud 复制到本地
拉取全部内容(代码 + 数据库 + 文件)
acli pull:all
别名:acli refresh、acli pull
系统会提示你选择一个环境,然后将代码、数据库和文件复制到本地环境。
选项:
acli pull:all \
--dir=/path/to/project \
--no-code \ # skip code
--no-databases \ # skip database
--no-files \ # skip files
--no-scripts # skip post-pull scripts
仅拉取代码
acli pull:code
将所选 Cloud 环境中的最新代码拉取到本地目录。
acli pull:code --dir=/path/to/project
仅拉取数据库
acli pull:database
别名:acli pull:db
将 Cloud 环境中的数据库备份导入本地数据库。
选项:
acli pull:database \
--on-demand \ # force a fresh on-demand backup (not cached)
--no-import \ # download the backup file but don't import it
--multiple-dbs # download multiple databases (multisite)
仅拉取文件
acli pull:files
将 Cloud 环境中的 Drupal 公共文件(sites/default/files)复制到本地。
手动运行拉取后的脚本
如果在拉取时跳过了脚本,可单独运行:
acli pull:run-scripts
acli pull:run-scripts --dir=/path/to/project
推送:从本地复制到 Cloud
推送数据库
acli push:database
别名:acli push:db
将本地数据库上传到 Cloud Platform 环境。要求已配置本地数据库和远程数据库。
推送文件
acli push:files
将本地 Drupal 公共文件复制到所选 Cloud 环境。
推送代码(仅 IDE)
acli push:code
将代码从 Cloud IDE 推送到 Cloud Platform 环境。此命令仅可在 Cloud IDE 或 Lando 环境中使用。
构建并推送代码产物
构建项目,并将编译后的产物推送到 Cloud 环境或自定义 git 远程端:
acli push:artifact
常用选项:
# Push to a specific branch on Cloud
acli push:artifact --destination-git-branch=deploy/main
# Push to a specific tag
acli push:artifact --destination-git-tag=release-1.2.3
# Push to an external git URL (e.g. GitHub)
acli push:artifact [email protected]:myorg/myrepo.git
# Dry run — build but don't push
acli push:artifact --no-push
# Build in a specific directory
acli push:artifact --dir=/path/to/project
# Skip sanitization step
acli push:artifact --no-sanitize
典型工作流
刷新本地开发环境
acli pull:all
仅拉取数据库(测试速度最快)
acli pull:database --on-demand
将构建产物部署到 Cloud
acli push:artifact --destination-git-branch=tags/deploy-branch
将文件同步到生产环境(谨慎使用)
acli push:files
最佳实践
- 推送前务必先拉取 — 避免覆盖 Cloud 上的最新更改。
- 使用
--on-demand获取最新数据 — 默认拉取使用缓存的备份;--on-demand会强制创建新备份。 - 使用
--no-push测试产物构建 — 推送前确认产物正确。 - 在 CI 中使用
--no-scripts— 拉取后的脚本专为本地开发设计,不适用于 CI 流水线。 - 推送数据库前先备份 —
push:database会覆盖远程数据库。
故障排除
“找不到本地数据库”
pull:all 和 pull:database 需要正在运行的本地数据库。请确保本地 Drupal 技术栈(Lando、DDEV 等)正在运行。
推送时“拒绝访问”
确认已设置 SSH 密钥,并且你的账号拥有该环境的写入权限:
acli ssh-key:list
acli auth:me
产物推送失败
推送前,请检查 composer install 和所有构建步骤均已无错误地完成:
acli push:artifact --no-push # dry run to inspect