mcpField
P
pull-push

pull-push

github.com/acquia云与 DevOps10121 次安装今天更新
代码仓库

关于 pull-push

pull-push 是一项介绍使用 Acquia CLI 在本地环境与 Acquia Cloud Platform 之间同步代码、数据库和文件的 skill,涵盖按需拉取、推送数据库与文件,以及面向 ACE 订阅的构建产物部署。

主要功能

  1. 01拉取代码、数据库和文件
  2. 02选择拉取内容及选项
  3. 03向 Cloud 推送数据库和文件
  4. 04构建并部署代码产物
  5. 05运行拉取后脚本

适用场景

  1. 01刷新本地 Drupal 开发环境
  2. 02导入最新的 Cloud 数据库备份
  3. 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

最佳实践

  1. 推送前务必先拉取 — 避免覆盖 Cloud 上的最新更改。
  2. 使用 --on-demand 获取最新数据 — 默认拉取使用缓存的备份;--on-demand 会强制创建新备份。
  3. 使用 --no-push 测试产物构建 — 推送前确认产物正确。
  4. 在 CI 中使用 --no-scripts — 拉取后的脚本专为本地开发设计,不适用于 CI 流水线。
  5. 推送数据库前先备份 — 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

相关主题

评论

支持 Markdown