我有一个剧本,我想备份,删除和导入一些表(作为更新它们的方法),不要问我为什么我不会只使用更新和插入,这是一个复杂的架构。
我想查询postgres数据库以确定来自特定数据库的哪些表来执行这些表的操作。
喜欢:
- name: Create a list of STATIC TABLES to import later
command: psql -t -A -d {{ dbname }} -U {{ dbuser }} -c "SELECT table_name FROM information_schema.tables WHERE table_schema='public' AND table_type='BASE TABLE'"
register: dbtables_data
和
- name: Backup all tables.
shell: "pg_dump -U {{ dbuser }} {{ item.name }} -f {{ dbbackup_dir }}/{{ item.name }}.sql"
with_items: "{{ dbtables_data.results }}"
这给了我:
fatal: [*.*.*.*] => with_items expects a list or a set
我想将此输出注册到列表变量中,以便我可以迭代并执行备份,删除和导入操作。
请帮忙
答案 0 :(得分:0)
已注册变量包含可以使用的名为git-request-pull
的字段:
我建议你暂时添加一个调试任务来显示输出:
git request-pull
要调试$ git request-pull origin/master myfork
The following changes since commit 1edee6b1d61823a2de3b09c160d7080b8d1b3a40:
John Smith (1):
added a new function
are available in the git repository at:
git://githost/simplegit.git featureA
Jessica Smith (2):
add limit to log function
change log output to 30 from 25
lib/simplegit.rb | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
内容,您可以在两个现有任务之间插入以下任务:
stdout_lines
或者
- name: Create a list of STATIC TABLES to import later
command: psql -t -A -d {{ dbname }} -U {{ dbuser }} -c "SELECT table_name FROM information_schema.tables WHERE table_schema='public' AND table_type='BASE TABLE'"
register: dbtables_data
- name: Backup all tables.
shell: "pg_dump -U {{ dbuser }} {{ item }} -f {{ dbbackup_dir }}/{{ item }}.sql"
with_items: "{{ dbtables_data.stdout_lines }}"
另一个优雅的方法是,通过使用参数'with_lines'调用查找插件'lines',在一个任务中iterate directly over the results
stdout_lines