31 lines
711 B
Terraform
31 lines
711 B
Terraform
resource "postgresql_role" "owner" {
|
|
name = var.owner
|
|
}
|
|
|
|
resource "postgresql_database" "this" {
|
|
name = var.name
|
|
owner = postgresql_role.owner.name
|
|
}
|
|
|
|
resource "postgresql_extension" "vector" {
|
|
count = var.pgvector ? 1 : 0
|
|
name = "vector"
|
|
database = postgresql_database.this.name
|
|
}
|
|
|
|
resource "postgresql_grant" "public" {
|
|
database = postgresql_database.this.name
|
|
role = "public"
|
|
object_type = "database"
|
|
privileges = []
|
|
}
|
|
|
|
resource "postgresql_grant" "owner" {
|
|
database = postgresql_database.this.name
|
|
role = postgresql_role.owner.name
|
|
object_type = "database"
|
|
privileges = ["CONNECT", "CREATE", "TEMPORARY"]
|
|
|
|
depends_on = [postgresql_grant.public]
|
|
}
|