Управление базами данных в Managed Service for PostgreSQL
Вы можете добавлять, переименовывать и удалять базы данных, а также просматривать информацию о них.
Важно
Вы не можете управлять базами данных с помощью команд SQL.
Получить список баз данных в кластере
- Перейдите в сервис Managed Service for PostgreSQL.
- Нажмите на имя нужного кластера и выберите вкладку Базы данных.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить список баз данных в кластере, выполните команду:
yc managed-postgresql database list --cluster-name=<имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.List и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.List и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.DatabaseService.ListИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать базу данных
Примечание
В каждом кластере вы можете создать не более 1000 баз данных.
-
Перейдите в сервис Managed Service for PostgreSQL.
-
Нажмите на имя нужного кластера.
-
Если владельцем новой базы данных должен стать еще не существующий пользователь, создайте его.
-
Выберите вкладку Базы данных.
-
Нажмите кнопку
Создать базу данных. -
Укажите параметры базы данных:
-
Имя.
Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres,template0,template1зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя. -
Владелец.
-
Защита от удаления.
Возможные значения:
- Как у кластера.
- Включена.
- Выключена.
-
(Опционально) Шаблон — имя одной из существующих баз, с которой нужно будет скопировать схему данных. На время создания новой базы все подключения к базе-шаблону будут закрыты.
Подробнее см. в документации PostgreSQL
. -
Локали сортировки и набора символов.
PostgreSQL использует локали для поддержки различных языковых стандартов. Выбор локали влияет на:
- Порядок сортировки в запросах с использованием оператора
ORDER BYили стандартных операторов сравнения текстовых данных. - Функции
upper,lower,initcap, а также семейство функцийto_char. - Операторы поиска по шаблону (
LIKE,ILIKE,SIMILAR TO, регулярные выражения). - Возможность использовать индексы с оператором
LIKE.
По умолчанию используется локаль
C. При использовании кодировкиCдля текстовых данных с нелатинскими (например, кириллическими) символами возможны ошибки в порядке сортировки данных и отображении данных при поиске по шаблону. Если эта локаль не подходит для корректной обработки таблиц в базе данных, выберите другую из списка. Однако учитывайте, что использование нестандартной локали может снизить скорость выполнения запросов к базе данных.Подробнее о настройках локали см. в документации PostgreSQL
.Настройки локали нельзя изменить после создания базы данных. Но вы можете задать локаль сортировки для столбцов при создании и изменении отдельных таблиц. Подробнее читайте в документации PostgreSQL
. - Порядок сортировки в запросах с использованием оператора
-
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы создать базу данных в кластере:
-
Посмотрите описание команды CLI для создания БД:
yc managed-postgresql database create --help -
Запросите список пользователей кластера, чтобы выбрать владельца новой базы данных:
yc managed-postgresql user list --cluster-name=<имя_кластера>Если нужного пользователя в списке нет, создайте его.
-
Выполните команду создания БД. При необходимости укажите нужные локали сортировки и набора символов (по умолчанию задаются
LC_COLLATE=CиLC_CTYPE=C) и шаблон:yc managed-postgresql database create <имя_БД> \ --cluster-name=<имя_кластера> \ --owner=<имя_владельца_БД> \ --lc-collate=<локаль_сортировки> \ --lc-type=<локаль_набора_символов> \ --template-db=<имя_БД-шаблона>Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres,template0,template1зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.Имя кластера можно запросить со списком кластеров в каталоге.
Managed Service for PostgreSQL запустит операцию создания базы данных.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации базы данных кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.
-
Добавьте ресурс
yandex_mdb_postgresql_database. При необходимости укажите нужные локали сортировки и набора символов (по умолчанию задаютсяLC_COLLATE=CиLC_CTYPE=C) и шаблон:resource "yandex_mdb_postgresql_database" "<имя_БД>" { cluster_id = "<идентификатор_кластера>" name = "<имя_БД>" owner = "<имя_владельца_БД>" lc_collate = "<локаль_сортировки>" lc_type = "<локаль_набора_символов>" template_db = "<имя_БД-шаблона>" deletion_protection = <защита_от_удаления> }Где:
owner— имя пользователя-владельца, который должен быть задан в ресурсеyandex_mdb_postgresql_user.deletion_protection— защита БД от удаления:true,falseилиunspecified(наследует значение от кластера). Значение по умолчанию —unspecified.
Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres,template0,template1зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Важно
После создания БД не меняйте ее владельца в параметре owner — это приведет к пересозданию БД и потере данных.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Create и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases' \ --data '{ "databaseSpec": { "name": "<имя_БД>", "owner": "<имя_владельца_БД>", "lcCollate": "<локаль_сортировки>", "lcCtype": "<локаль_набора_символов>", "extensions": [ { "name": "<имя_расширения>" } ], "deletionProtection": <защита_от_удаления> } }'Где
databaseSpec— объект, содержащий настройки новой БД. Имеет следующую структуру:-
name— имя БД.Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres,template0,template1зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя. -
owner— имя владельца БД. -
lcCollate— локаль сортировки. Значение по умолчанию —C. -
lcCtype— локаль набора символов. Значение по умолчанию —C. -
extensions— массив расширений БД. Один элемент массива содержит настройки для одного расширения и имеет следующую структуру:extensions.name— имя расширения;
Указывайте имя в соответствии со списком поддерживаемых расширений и утилит PostgreSQL.
-
deletionProtection— защита БД от удаления:true,falseилиunspecified(наследует значение от кластера). Значение по умолчанию —unspecified.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Create и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_spec": { "name": "<имя_БД>", "owner": "<имя_владельца_БД>", "lc_collate": "<локаль_сортировки>", "lc_ctype": "<локаль_набора_символов>", "extensions": [ { "name": "<имя_расширения>" } ], "deletion_protection": <защита_от_удаления> } }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.DatabaseService.CreateГде
databaseSpec— объект, содержащий настройки новой БД. Имеет следующую структуру:-
name— имя БД.Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres,template0,template1зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя. -
owner— имя владельца БД. -
lc_collate— локаль сортировки. Значение по умолчанию —C. -
lc_ctype— локаль набора символов. Значение по умолчанию —C. -
extensions— массив расширений БД. Один элемент массива содержит настройки для одного расширения и имеет следующую структуру:extensions.name— имя расширения;
Указывайте имя в соответствии со списком поддерживаемых расширений и утилит PostgreSQL.
-
deletion_protection— защита БД от удаления:true,falseилиunspecified(наследует значение от кластера). Значение по умолчанию —unspecified.
Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Переименовать базу данных
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации базы данных кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.
-
Найдите ресурс
yandex_mdb_postgresql_databaseнужной базы данных. -
Измените значение поля
name:resource "yandex_mdb_postgresql_database" "<имя_базы данных>" { ... name = "<новое_имя_базы_данных>" ... }Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres,template0,template1зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases/<прежнее_имя_БД>' \ --data '{ "updateMask": "newDatabaseName", "newDatabaseName": "<новое_имя_БД>" }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
newDatabaseName— новое имя БД.Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres,template0,template1зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.
Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_name": "<прежнее_имя_БД>", "update_mask": { "paths": [ "new_database_name" ] }, "new_database_name": "<новое_имя_БД>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.DatabaseService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
new_database_name— новое имя БД.Имя базы может содержать латинские буквы, цифры, подчеркивание и дефис. Максимальная длина имени 63 символа. Имена
postgres,template0,template1зарезервированы для собственных нужд Managed Service for PostgreSQL. Создавать базы с этими именами нельзя.
Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Настроить защиту от удаления
- Перейдите в сервис Managed Service for PostgreSQL.
- Нажмите на имя нужного кластера и выберите вкладку Базы данных.
- Нажмите на значок
в строке нужной БД и выберите пункт Настроить. - Выберите нужное значение в поле Защита от удаления.
- Нажмите кнопку Сохранить.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
-
Найдите ресурс
yandex_mdb_postgresql_databaseнужной БД. -
Добавьте параметр
deletion_protection. Доступные значения:true,falseилиunspecified(наследует значение от кластера). Значение по умолчанию —unspecified.resource "yandex_mdb_postgresql_database" "<имя_базы_данных>" { ... deletion_protection = <защита_от_удаления> ... } -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Update и выполните запрос, например, с помощью cURL
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask(одной строкой через запятую).curl \ --request PATCH \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>' \ --data '{ "updateMask": "deletionProtection", "deletionProtection": <защита_от_удаления> }'Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.В данном случае передается только один параметр.
-
deletionProtection— защита БД от удаления:true,falseилиunspecified(наследует значение от кластера). Значение по умолчанию —unspecified.
Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Update и выполните запрос, например, с помощью gRPCurl
:Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask(в виде массива строкpaths[]).Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_name": "<имя_БД>", "update_mask": { "paths": [ "deletion_protection" ] }, "deletion_protection": <защита_от_удаления> }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.DatabaseService.UpdateГде:
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].В данном случае передается только один параметр.
-
deletion_protection— защита БД от удаления:true,falseилиunspecified(наследует значение от кластера). Значение по умолчанию —unspecified.
Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Защита от удаления действует только на уровне конкретной БД. При удалении кластера будут удалены все БД, в том числе защищенные от удаления.
Удалить базу данных
БД может быть защищена от удаления. Чтобы удалить такую БД, сперва снимите защиту.
Чтобы удалить базу данных:
- Перейдите в сервис Managed Service for PostgreSQL.
- Нажмите на имя нужного кластера и выберите вкладку Базы данных.
- Нажмите на значок
в строке нужной БД, выберите пункт Удалить и подтвердите удаление.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы удалить базу данных, выполните команду:
yc managed-postgresql database delete <имя_БД> \
--cluster-name <имя_кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
Чтобы удалить базу данных:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
Полный список доступных для изменения полей конфигурации базы данных кластера Managed Service for PostgreSQL см. в документации провайдера Terraform.
-
Удалите ресурс
yandex_mdb_postgresql_databaseс именем удаляемой базы данных. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Database.Delete и выполните запрос, например, с помощью cURL
:curl \ --request DELETE \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-postgresql/v1/clusters/<идентификатор_кластера>/databases/<имя_БД>'Идентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом DatabaseService.Delete и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/postgresql/v1/database_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "database_name": "<имя_БД>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.postgresql.v1.DatabaseService.DeleteИдентификатор кластера можно запросить со списком кластеров в каталоге, а имя БД — со списком БД в кластере.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Важно
Прежде чем создать новую базу с тем же именем, дождитесь завершения операции удаления, иначе будет восстановлена удаляемая база. Статус операции можно получить вместе со списком операций в кластере.