yandex_mdb_postgresql_database (Resource)
Written by
Updated at August 7, 2025
Manages a PostgreSQL database within the Yandex Cloud. For more information, see the official documentation.
Example usage
//
// Create a new MDB PostgreSQL Database.
//
resource "yandex_mdb_postgresql_database" "my_db" {
cluster_id = yandex_mdb_postgresql_cluster.my_cluster.id
name = "testdb"
owner = yandex_mdb_postgresql_user.my_user.name
lc_collate = "en_US.UTF-8"
lc_type = "en_US.UTF-8"
extension {
name = "uuid-ossp"
}
extension {
name = "xml2"
}
}
resource "yandex_mdb_postgresql_user" "my_user" {
cluster_id = yandex_mdb_postgresql_cluster.my_cluster.id
name = "alice"
password = "password"
}
resource "yandex_mdb_postgresql_cluster" "my_cluster" {
name = "test"
environment = "PRESTABLE"
network_id = yandex_vpc_network.foo.id
config {
version = 15
resources {
resource_preset_id = "s2.micro"
disk_type_id = "network-ssd"
disk_size = 16
}
}
host {
zone = "ru-central1-d"
subnet_id = yandex_vpc_subnet.foo.id
}
}
// Auxiliary resources
resource "yandex_vpc_network" "foo" {}
resource "yandex_vpc_subnet" "foo" {
zone = "ru-central1-d"
network_id = yandex_vpc_network.foo.id
v4_cidr_blocks = ["10.5.0.0/24"]
}
Schema
Required
cluster_id(String) The ID of the PostgreSQL cluster.name(String) The resource name.owner(String) Name of the user assigned as the owner of the database. Forbidden to change in an existing database.
Optional
deletion_protection(String) Thetruevalue means that resource is protected from accidental deletion.extension(Block Set) Set of database extensions. (see below for nested schema)lc_collate(String) POSIX locale for string sorting order. Forbidden to change in an existing database.lc_type(String) POSIX locale for character classification. Forbidden to change in an existing database.template_db(String) Name of the template database.timeouts(Block, Optional) (see below for nested schema)
Read-Only
id(String) The ID of this resource.
Nested Schema for extension
Required:
name(String) Name of the database extension. For more information on available extensions see the official documentation.
Nested Schema for timeouts
Optional:
create(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).delete(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.read(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.update(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Import
The resource can be imported by using their resource ID. For getting the resource ID you can use Yandex Cloud Web Console
# terraform import yandex_mdb_postgresql_database.<resource Name> <resource Id>
terraform import yandex_mdb_postgresql_database.my_db ...