feat: add city column to users table #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: pgschema Plan - Multi File | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| paths: | |
| - 'multifile/**' | |
| - '.github/workflows/pgschema-plan-multi.yml' | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| jobs: | |
| pgschema-plan-multi: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: 'stable' | |
| - name: Install pgschema | |
| run: go install github.com/pgschema/pgschema@latest | |
| - name: Run pgschema plan | |
| id: plan | |
| run: | | |
| # Run pgschema plan with directory of SQL files | |
| PLAN_OUTPUT=$(pgschema plan \ | |
| --host "${{ secrets.DB_HOST }}" \ | |
| --port "${{ secrets.DB_PORT }}" \ | |
| --db "${{ secrets.DB_NAME }}" \ | |
| --user "${{ secrets.DB_USER }}" \ | |
| --file "${{ github.workspace }}/multifile/main.sql" \ | |
| --format human 2>&1) | |
| # Escape special characters for GitHub Actions | |
| PLAN_OUTPUT="${PLAN_OUTPUT//'%'/'%25'}" | |
| PLAN_OUTPUT="${PLAN_OUTPUT//$'\n'/'%0A'}" | |
| PLAN_OUTPUT="${PLAN_OUTPUT//$'\r'/'%0D'}" | |
| # Set output | |
| echo "plan<<EOF" >> $GITHUB_OUTPUT | |
| echo "$PLAN_OUTPUT" >> $GITHUB_OUTPUT | |
| echo "EOF" >> $GITHUB_OUTPUT | |
| env: | |
| PGPASSWORD: ${{ secrets.DB_PASSWORD }} | |
| - name: Comment PR | |
| uses: actions/github-script@v7 | |
| with: | |
| github-token: ${{secrets.GITHUB_TOKEN}} | |
| script: | | |
| const planOutput = `${{ steps.plan.outputs.plan }}`; | |
| // Decode the escaped output | |
| const decodedOutput = decodeURIComponent(planOutput); | |
| const body = `## pgschema Plan Output (Multi File) | |
| <details> | |
| <summary>Click to expand plan details</summary> | |
| \`\`\` | |
| ${decodedOutput} | |
| \`\`\` | |
| </details> | |
| --- | |
| *This comment was automatically generated by the pgschema Multi File Plan workflow.*`; | |
| // Try to find existing comment | |
| const { data: comments } = await github.rest.issues.listComments({ | |
| ...context.repo, | |
| issue_number: context.issue.number, | |
| }); | |
| const botComment = comments.find(comment => | |
| comment.user.type === 'Bot' && | |
| comment.body.includes('pgschema Plan Output (Multi File)') | |
| ); | |
| if (botComment) { | |
| // Update existing comment | |
| await github.rest.issues.updateComment({ | |
| ...context.repo, | |
| comment_id: botComment.id, | |
| body: body | |
| }); | |
| } else { | |
| // Create new comment | |
| await github.rest.issues.createComment({ | |
| ...context.repo, | |
| issue_number: context.issue.number, | |
| body: body | |
| }); | |
| } |