Usa Cloud SQL para PostgreSQL con Rails 7 en App Engine

Comienza a desarrollar apps de Ruby on Rails que se ejecuten en el entorno flexible de App Engine. Las apps que crees se ejecutarán en la misma infraestructura que impulsa todos los productos de Google, ten la confianza de que escalarán para atender a todos tus usuarios, sin importar si son unos pocos o millones.

Para este instructivo, suponemos que conoces el desarrollo web con Rails. Te guía a través de la configuración de Cloud SQL para PostgreSQL con una nueva app de Rails. También puedes usar este instructivo como referencia para configurar apps de Rails existentes a fin de usar Cloud SQL para PostgreSQL.

Este instructivo admite y requiere Ruby 3.0 o una versión posterior.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud SQL Admin API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. Instala Google Cloud CLI.

  6. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  7. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud SQL Admin API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  11. Instala Google Cloud CLI.

  12. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  13. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init

Prepara una instancia de Cloud SQL para PostgreSQL

Configura una instancia de Cloud SQL para PostgreSQL a fin de usarla en este instructivo.

  1. Crea una instancia de PostgreSQL. En este instructivo, el nombre de la instancia es rails-cloudsql-instance.

  2. Crea una base de datos en la instancia. En este instructivo, el nombre de la base de datos de producción es cat_list_production.

  3. Configura la contraseña del usuario de postgres para la instancia.

Configura el entorno local para Rails

Para configurar tu entorno local para este instructivo, haz lo siguiente:

  1. Instala la versión 3.0 o posterior de Ruby.

  2. Instala la gema de Rails 7.

  3. Instala la gema de Bundler.

Para obtener información adicional sobre la instalación de Rails y sus dependencias, consulta la guía oficial Comenzar a usar Rails.

Una vez que completes los requisitos previos, crea e implementa una app de Rails con Cloud SQL para PostgreSQL. En las siguientes secciones, se te guiará en la configuración, la conexión a Cloud SQL para PostgreSQL y la implementación de una app.

Crea una app nueva que muestre una lista de gatos

  1. Ejecuta el comando rails new si deseas crear una nueva app de Rails. Esta aplicación almacena una lista de cats en Cloud SQL para PostgreSQL.

    rails new cat_sample_app
    
  2. Ve al directorio que contiene la app de Rails que se generó.

    cd cat_sample_app
    

Ejecuta la app de forma local

Para ejecutar la app de Rails nueva en tu computadora local, haz lo siguiente:

  1. Inicia un servidor web local:

    bundle exec bin/rails server
    
  2. En un navegador, ve a http://localhost:3000.

    La app de ejemplo muestra el logotipo de Rails con las versiones de Rails y Ruby.

Genera un andamiaje para una lista de gatos

Genere una estructura para un recurso llamado Cat que se usa para formar una lista de gatos con sus nombres y edades.

  1. Genera el andamiaje.

    bundle exec rails generate scaffold Cat name:string age:integer
    

    El comando genera un modelo, un controlador y vistas para el recurso Cat.

    invoke  active_record
    create    db