diff --git a/.github/workflows/pg_dump.yml b/.github/workflows/pg_dump.yml new file mode 100644 index 00000000..eb8ea5de --- /dev/null +++ b/.github/workflows/pg_dump.yml @@ -0,0 +1,37 @@ +name: Backup PostgreSQL Database + +on: + repository_dispatch: + types: [backup-database] + +jobs: + backup: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - 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 + run: | + pg_dump -h ${{ secrets.PG_HOST }} \ + -p ${{ secrets.PG_PORT }} \ + -U ${{ secrets.PG_USER }} \ + -d ${{ secrets.PG_DB }} \ + --file=backup.sql + env: + PGPASSWORD: ${{ secrets.PG_PASSWORD }} + + - name: Copy backup to local + run: | + mkdir -p ~/db_backups + cp backup.sql ~/db_backups/backup_$(date +'%Y%m%d%H%M%S').sql