GitHub Actions中pg_restore前如何清理目标数据库B?
解决pg-restore Action无法传入清理参数的问题
GitHub Actions抛出的警告翻译过来是:警告:意外的输入参数'options',合法输入仅为['database_url', 'backup_file'],核心原因是你使用的tj-actions/pg-restore@v4.5版本确实没有提供options输入参数,所以没法通过该Action传递-c清理指令。这里有两种可行的解决办法:
方案一:用原生pg_restore命令替代Action
既然工作流里已经安装了postgresql-client,完全可以跳过这个受限的Action,直接调用原生命令完成恢复,同时带上-c参数(恢复前清理数据库内的现有对象):
把原工作流中的Postgres Backup Restore步骤替换为:
- name: Postgres Backup Restore run: | pg_restore -d "postgres://USER:PWD@HOST:5432/DB_B" -c backups/backup.sql
这种方式直接绕开Action的参数限制,原生支持所有pg_restore的参数选项。
方案二:升级到支持options参数的Action版本
查看tj-actions/pg-restore的版本更新记录,v7及以上版本已经新增了options输入参数。如果不想修改命令逻辑,可以直接升级Action版本:
- name: Postgres Backup Restore uses: tj-actions/pg-restore@v7.0 with: database_url: "postgres://USER:PWD@HOST:5432/DB_B" backup_file: "backups/backup.sql" options: "-c"
升级后就能正常通过options参数传递-c清理指令了。
内容的提问来源于stack exchange,提问作者nadia univ
相关产品推荐
相关产品推荐

