@@ -33,38 +33,61 @@ A GitHub Action to create Prisma Postgres databases in your CI/CD workflows.
33
33
database_name : " my-test-db"
34
34
` ` `
35
35
36
- ### Complete Example for Pull Requests
36
+ ### Complete Example to Provision Prisma Postgres when PR is opened and delete when PR is closed
37
37
38
38
` ` ` yaml
39
- name : PR Database Testing
39
+ name : Prisma Postgres Database Lifecycle
40
40
on :
41
41
pull_request :
42
- types : [opened, reopened, synchronize]
42
+ types : [opened, reopened, synchronize, closed ]
43
43
44
44
jobs :
45
- test :
45
+ create-database :
46
+ name : Create Database
47
+ if : github.event.action != 'closed'
46
48
runs-on : ubuntu-latest
47
49
steps :
48
- - uses : actions/checkout@v4
50
+ - name : Checkout repository
51
+ uses : actions/checkout@v4
49
52
50
53
- name : Create Database
51
54
id : create
52
55
uses : prisma/create-prisma-postgres-database-action@v1
53
56
with :
54
57
service_token : ${{ secrets.PRISMA_POSTGRES_SERVICE_TOKEN }}
55
58
project_id : ${{ secrets.PRISMA_PROJECT_ID }}
59
+ database_name : " pr-${{ github.event.pull_request.number }}"
56
60
57
- - name : Setup Database Schema
58
- env :
59
- DATABASE_URL : ${{ steps.create.outputs.database_url }}
61
+ - name : Verify database creation
60
62
run : |
61
- npx prisma generate
62
- npx prisma db push
63
+ echo "✅ Database created successfully!"
64
+ echo "Database ID: ${{ steps.create.outputs.database_id }}"
65
+ echo "Database Name: ${{ steps.create.outputs.database_name }}"
66
+ echo "Database URL is available in steps.create.outputs.database_url"
67
+
68
+ cleanup-database :
69
+ name : Cleanup Database
70
+ if : always() && github.event.action == 'closed'
71
+ runs-on : ubuntu-latest
72
+ steps :
73
+ - name : Checkout repository
74
+ uses : actions/checkout@v4
63
75
64
- - name : Run Tests
65
- env :
66
- DATABASE_URL : ${{ steps.create.outputs.database_url }}
67
- run : npm test
76
+ - name : Delete Database
77
+ id : delete
78
+ uses : prisma/delete-prisma-postgres-database-action@v1
79
+ with :
80
+ service_token : ${{ secrets.PRISMA_POSTGRES_SERVICE_TOKEN }}
81
+ project_id : ${{ secrets.PRISMA_PROJECT_ID }}
82
+ database_name : " pr-${{ github.event.pull_request.number }}"
83
+
84
+ - name : Verify database deletion
85
+ run : |
86
+ if [ "${{ steps.delete.outputs.deleted }}" == "true" ]; then
87
+ echo "✅ Database ${{ steps.delete.outputs.database_name }} was deleted"
88
+ else
89
+ echo "ℹ️ No database found to delete"
90
+ fi
68
91
` ` `
69
92
70
93
## Inputs
0 commit comments