From 1336e81024286aa92b3dd0812ffadafcd0d6bf28 Mon Sep 17 00:00:00 2001 From: KaichiManabe <154493010+KaichiManabe@users.noreply.github.com> Date: Sun, 15 Dec 2024 18:59:35 +0900 Subject: [PATCH 1/5] =?UTF-8?q?pg-dump=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pg_dump.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/pg_dump.yml diff --git a/.github/workflows/pg_dump.yml b/.github/workflows/pg_dump.yml new file mode 100644 index 00000000..fd5bc564 --- /dev/null +++ b/.github/workflows/pg_dump.yml @@ -0,0 +1,33 @@ +name: Backup PostgreSQL Database + +on: + schedule: + - cron: "0 19 * * *" # 毎日午前2時に実行 + +jobs: + backup: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install PostgreSQL + run: | + sudo apt-get update + sudo apt-get install -y postgresql-client + + - name: Backup database + run: | + pg_dump -h ${{ secrets.PG_HOST }} \ + -U ${{ secrets.PG_USER }} \ + -d ${{ secrets.PG_DB }} \ + --file=backup.sql + env: + PGPASSWORD: ${{ secrets.PG_PASSWORD }} + + - name: Upload backup to GitHub + uses: actions/upload-artifact@v3 + with: + name: pg-dump-backup + path: backup.sql From 97db2fb1c6c67b5cb2fecc9954685651e66e6ae8 Mon Sep 17 00:00:00 2001 From: KaichiManabe <154493010+KaichiManabe@users.noreply.github.com> Date: Sun, 15 Dec 2024 19:04:57 +0900 Subject: [PATCH 2/5] =?UTF-8?q?PR=E6=99=82=E3=81=AB=E3=82=82=E5=8B=95?= =?UTF-8?q?=E3=81=8F=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pg_dump.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pg_dump.yml b/.github/workflows/pg_dump.yml index fd5bc564..81b4708d 100644 --- a/.github/workflows/pg_dump.yml +++ b/.github/workflows/pg_dump.yml @@ -3,6 +3,12 @@ name: Backup PostgreSQL Database on: schedule: - cron: "0 19 * * *" # 毎日午前2時に実行 + pull_request: # PR 作成や更新時にトリガー + branches: + - main + push: # 通常の push 時にもトリガー + branches: + - main jobs: backup: @@ -12,7 +18,7 @@ jobs: - name: Checkout code uses: actions/checkout@v3 - - name: Install PostgreSQL + - name: Install PostgreSQL Client run: | sudo apt-get update sudo apt-get install -y postgresql-client @@ -20,6 +26,7 @@ jobs: - name: Backup database run: | pg_dump -h ${{ secrets.PG_HOST }} \ + -p ${{ secrets.PG_PORT }} \ -U ${{ secrets.PG_USER }} \ -d ${{ secrets.PG_DB }} \ --file=backup.sql From d8951b4c7df5aea08b6eccc95f66197c02a8582f Mon Sep 17 00:00:00 2001 From: KaichiManabe <154493010+KaichiManabe@users.noreply.github.com> Date: Sun, 15 Dec 2024 19:08:03 +0900 Subject: [PATCH 3/5] =?UTF-8?q?psql=E3=81=AE=E3=83=90=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pg_dump.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pg_dump.yml b/.github/workflows/pg_dump.yml index 81b4708d..4e62f78c 100644 --- a/.github/workflows/pg_dump.yml +++ b/.github/workflows/pg_dump.yml @@ -21,7 +21,7 @@ jobs: - name: Install PostgreSQL Client run: | sudo apt-get update - sudo apt-get install -y postgresql-client + sudo apt-get install -y postgresql-client-15 - name: Backup database run: | From 7d577a7deaa986cd49906f03fd4945f3f13bcc7c Mon Sep 17 00:00:00 2001 From: KaichiManabe <154493010+KaichiManabe@users.noreply.github.com> Date: Sun, 15 Dec 2024 19:14:14 +0900 Subject: [PATCH 4/5] fix --- .github/workflows/pg_dump.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pg_dump.yml b/.github/workflows/pg_dump.yml index 4e62f78c..d4d24a3c 100644 --- a/.github/workflows/pg_dump.yml +++ b/.github/workflows/pg_dump.yml @@ -2,11 +2,11 @@ name: Backup PostgreSQL Database on: schedule: - - cron: "0 19 * * *" # 毎日午前2時に実行 - pull_request: # PR 作成や更新時にトリガー + - cron: "0 19 * * *" + pull_request: branches: - main - push: # 通常の push 時にもトリガー + push: branches: - main @@ -18,9 +18,14 @@ jobs: - name: Checkout code uses: actions/checkout@v3 - - name: Install PostgreSQL Client + - name: Add PostgreSQL Repository run: | + sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update + + - name: Install PostgreSQL Client + run: | sudo apt-get install -y postgresql-client-15 - name: Backup database From e23240d15387f3470a07c667cddd60018bd2f374 Mon Sep 17 00:00:00 2001 From: KaichiManabe <154493010+KaichiManabe@users.noreply.github.com> Date: Sat, 28 Dec 2024 15:13:47 +0900 Subject: [PATCH 5/5] change dispatch --- .github/workflows/pg_dump.yml | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/.github/workflows/pg_dump.yml b/.github/workflows/pg_dump.yml index d4d24a3c..eb8ea5de 100644 --- a/.github/workflows/pg_dump.yml +++ b/.github/workflows/pg_dump.yml @@ -1,14 +1,8 @@ name: Backup PostgreSQL Database on: - schedule: - - cron: "0 19 * * *" - pull_request: - branches: - - main - push: - branches: - - main + repository_dispatch: + types: [backup-database] jobs: backup: @@ -25,8 +19,7 @@ jobs: sudo apt-get update - name: Install PostgreSQL Client - run: | - sudo apt-get install -y postgresql-client-15 + run: sudo apt-get install -y postgresql-client-15 - name: Backup database run: | @@ -38,8 +31,7 @@ jobs: env: PGPASSWORD: ${{ secrets.PG_PASSWORD }} - - name: Upload backup to GitHub - uses: actions/upload-artifact@v3 - with: - name: pg-dump-backup - path: backup.sql + - name: Copy backup to local + run: | + mkdir -p ~/db_backups + cp backup.sql ~/db_backups/backup_$(date +'%Y%m%d%H%M%S').sql