Crear y administrar bases de datos

En esta página se ofrece información sobre cómo crear, mostrar y eliminar bases de datos de PostgreSQL en una instancia de Cloud SQL.

Una instancia recién creada tiene una base de datos postgres.

Para obtener más información sobre las bases de datos PostgreSQL, consulta la documentación de PostgreSQL.

Antes de empezar

Para efectuar las tareas indicadas en esta página, debes haber hecho antes lo siguiente:

  • Has creado una instancia de Cloud SQL. Para obtener más información, consulta Crear instancias.

Si tienes previsto usar el cliente psql para crear o gestionar tus bases de datos, debes tener lo siguiente:

Crear una base de datos en la instancia de Cloud SQL

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Bases de datos.
  4. Haz clic en Crear base de datos.
  5. En el cuadro de diálogo Nueva base de datos, especifica el nombre de la base de datos.
  6. Haz clic en Crear.

gcloud

Para obtener información de referencia, consulta gcloud sql databases create.

gcloud sql databases create DATABASE_NAME \
--instance=INSTANCE_NAME

Terraform

Para crear una base de datos, usa un recurso de Terraform.

resource "google_sql_database" "database" {
  name     = "my-database"
  instance = google_sql_database_instance.instance.name
}

Aplica los cambios

Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud

Preparar Cloud Shell

  1. Abre Cloud Shell.
  2. Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.

    Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión .tf. Por ejemplo, main.tf. En este tutorial, nos referiremos al archivo como main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.

    Copia el código de ejemplo en el archivo main.tf que acabas de crear.

    También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

  3. Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
    terraform init

    Si quieres usar la versión más reciente del proveedor de Google, incluye la opción -upgrade:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
    terraform plan

    Haga las correcciones necesarias en la configuración.

  2. Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply

    Espera hasta que Terraform muestre el mensaje "Apply complete!".

  3. Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.

Eliminar los cambios

Para eliminar los cambios, sigue estos pasos:

  1. Para inhabilitar la protección contra la eliminación, en el archivo de configuración de Terraform, asigna el valor false al argumento deletion_protection.
    deletion_protection =  "false"
  2. Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply
  1. Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce yes en la petición:

    terraform destroy

REST v1

En la siguiente solicitud se usa el método databases:insert para crear una base de datos en la instancia especificada.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.
  • database-name: nombre de una base de datos de la instancia de Cloud SQL

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

Cuerpo JSON de la solicitud:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

En la siguiente solicitud se usa el método databases:insert para crear una base de datos en la instancia especificada.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.
  • database-name: nombre de una base de datos de la instancia de Cloud SQL

Método HTTP y URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

Cuerpo JSON de la solicitud:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

Cliente psql

Para obtener información de referencia, consulta CREATE DATABASE en la documentación de PostgreSQL.

Consulta los siguientes temas de la documentación de PostgreSQL para obtener información general y una lista de los valores de conjuntos de caracteres admitidos:

CREATE DATABASE database_name
  [[ ENCODING encoding ][ LC_COLLATE lc_collate ]];

Por ejemplo:
CREATE DATABASE "example_db" WITH OWNER "example_user" ENCODING 'UTF8' LC_COLLATE = 'pl_PL.utf8' LC_CTYPE = 'pl_PL.utf8' TEMPLATE template0;

Mostrar tus bases de datos

Para mostrar una lista con todas las bases de datos en una instancia, efectúa los pasos siguientes:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de la izquierda, haz clic en Bases de datos. En la página Bases de datos se muestran las bases de datos junto con su tipo de ordenación, su conjunto de caracteres y su tipo de base de datos.

gcloud

Para obtener información de referencia, consulta gcloud sql databases list.

gcloud sql databases list \
--instance=INSTANCE_NAME

REST v1

La siguiente solicitud usa el método databases:list para enumerar las bases de datos de una instancia.

Cuando generes la lista de bases de datos mediante la API, verás otras bases de datos de plantilla y una base de datos del sistema que la consola no muestra. No puedes eliminar ni administrar la base de datos del sistema.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

La siguiente solicitud usa el método databases:list para enumerar las bases de datos de una instancia.

Cuando generes la lista de bases de datos mediante la API, verás otras bases de datos de plantilla y una base de datos del sistema que la consola no muestra. No puedes eliminar ni administrar la base de datos del sistema.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

Cliente psql

Para obtener información de referencia, consulta la lista.

Cuando enumeras las bases de datos con el cliente psql, verás bases de datos de plantillas adicionales y una base de datos del sistema que no se muestran en la consola. No puedes eliminar ni administrar la base de datos del sistema.

\l

Eliminar una base de datos

Para eliminar una base de datos de la instancia de Cloud SQL, efectúa los pasos siguientes:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de la izquierda, haz clic en Bases de datos.
  4. En la lista de bases de datos, busca la base de datos que quieres eliminar y haz clic en el icono de papelera.
  5. En el cuadro de diálogo Eliminar base de datos, introduce el nombre de la base de datos y, a continuación, haz clic en Eliminar.

gcloud

Para obtener información de referencia, consulta gcloud sql databases delete.

gcloud sql databases delete DATABASE_NAME \
--instance=INSTANCE_NAME

REST v1

La siguiente solicitud usa el método databases:delete para eliminar la base de datos especificada.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.
  • database-name: nombre de una base de datos de la instancia de Cloud SQL

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

La siguiente solicitud usa el método databases:delete para eliminar la base de datos especificada.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.
  • database-name: nombre de una base de datos de la instancia de Cloud SQL

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

Cliente psql

Para obtener información de referencia, consulta DROP DATABASE en la documentación de PostgreSQL.

DROP DATABASE [database_name];

Siguientes pasos

Pruébalo

Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud SQL en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.

Probar Cloud SQL gratis