Skip to content

Latest commit

 

History

History
22 lines (17 loc) · 683 Bytes

add-a-generated-column-to-a-postgresql-table.md

File metadata and controls

22 lines (17 loc) · 683 Bytes

Add A Generated Column To A PostgreSQL Table

As of Rails 7, ActiveRecord supports generated columns for app's backed by a PostgreSQL database. This is achieved with a virtual column.

class CreateTags < ActiveRecord::Migration[8.0]
  def change
    create_table :tags, id: :bigint do |t|
      t.string :value
      t.virtual :normalized_value, type: :text, as: "lower(value)", stored: true

      t.timestamps
    end
  end
end

With a table like this, any time we add a record with a value, PostgreSQL computes and stores the normalized_value column based on that.

source