diff --git a/main.tf b/main.tf index 26312fa..3ec632b 100644 --- a/main.tf +++ b/main.tf @@ -124,19 +124,29 @@ resource "kubernetes_job" "db_init_job" { container { name = "init-db" image = "postgres:${var.postgres_version}" - command = [ "/bin/sh", - "-c", - "psql $DATABASE_URL -c \"CREATE DATABASE ${each.key};\"" + "-c" + ] + args = [ + <<-EOC + set -x + if $FORCE_RECREATE; then + # psql $DATABASE_URL -c 'DROP DATABASE IF EXISTS ${each.key} WITH (FORCE);' + fi + set -e + psql $DATABASE_URL -c 'CREATE DATABASE ${each.key};' + EOC ] - env { name = "DATABASE_URL" value = replace(each.value.metadata_backend_url, "/${basename(each.value.metadata_backend_url)}", "/postgres") } + env { + name = "FORCE_RECREATE" + value = var.metadata_database_force_recreate + } } - restart_policy = "OnFailure" } } diff --git a/variables.tf b/variables.tf index 71ac3a8..5bd01c1 100644 --- a/variables.tf +++ b/variables.tf @@ -104,3 +104,9 @@ variable "postgres_version" { type = string default = "15" } + +variable "metadata_database_force_recreate" { + description = "Force recreation of the PG database on changes. This should only be turned on during development" + type = bool + default = false +}