Cómo crear una migración de rieles para columnas calculadas automáticamente como se muestra a continuación.
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 );No quiero usar Modelos, porque quiero usar la misma tabla de otro sistema que tiene una tecnología diferente.
Puede usar SQL puro en la migración
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 Al usar tales migraciones, para que el esquema de la base de datos sea correcto, debe usar el tipo de volcado de SQL (el tipo predeterminado es Ruby). Para configurar esta configuración, agregue una línea a su config/application.rb
config.active_record.schema_format = :sql Después de ese esquema se guardará en db/structure.sql
Por favor , lea más