Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

259
Vistas
create rails migration for PostgreSQL GENERATED ALWAYS AS column

How to create rails migration for auto calculated columns like below.

    a_column integer,
    b_column integer,
    total1 integer GENERATED ALWAYS AS (a_column+b_column) stored,
    total2 integer GENERATED ALWAYS AS (a_column-b_column) stored,
    total3 integer GENERATED ALWAYS AS (a_column/b_column) stored
); 

I don't want to do using Models, because I want to use same table from another system having different technology.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

You can use pure SQL in migration

def up
  execute <<~SQL
    CREATE TABLE table_name (
      a_column integer,
      b_column integer,
      total1 integer GENERATED ALWAYS AS (a_column+b_column) stored,
      total2 integer GENERATED ALWAYS AS (a_column-b_column) stored,
      total3 integer GENERATED ALWAYS AS (a_column/b_column) stored
    );
  SQL
end

def down
  drop_table :table_name
end

When using such migrations, in order for the database schema to be correct, you need to use SQL dump type (default type is Ruby). To setup this setting add line to your config/application.rb

config.active_record.schema_format = :sql

After that schema will be saved to db/structure.sql

Please read more

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda