# ============================================================================= # PG — пользователь и база данных # ============================================================================= # # Пользователь и база создаются отдельными операциями (create_user / create_database) # внутри кластера, который создал nubes_postgres.main_pg. # # ЗАЧЕМ keep_on_destroy = true (не удалять подресурс при destroy): # - у кластера suspend_on_destroy_default = true ⇒ при destroy кластер уходит в # Suspend, а НЕ удаляется; # - по умолчанию же при destroy подресурс выполнил бы delete_user / delete_database — # получилось бы расхождение: кластер в облаке жив, а юзер/база удалены (база = потеря данных); # - keep_on_destroy = true ⇒ подресурс при destroy НЕ удаляется и НЕ меняется в облаке, # только убирается из state. Провайдер печатает предупреждение «Подресурс оставлен как есть». # # Пара к keep_on_destroy = true обязательна: # adopt_existing_on_create = true — иначе повторный apply попытается СОЗДАТЬ уже # существующего юзера/базу и упадёт с «уже существует». С true провайдер усыновляет # существующий объект обратно (авто-import). # ============================================================================= resource "nubes_postgres_user" "crud_user_0" { postgres_id = nubes_postgres.main_pg.id username = var.pg_username role = var.pg_role adopt_existing_on_create = true keep_on_destroy = true } resource "nubes_postgres_database" "pg_db" { postgres_id = nubes_postgres.main_pg.id db_name = var.pg_db_name db_owner = nubes_postgres_user.crud_user_0.username adopt_existing_on_create = true keep_on_destroy = true }