activerecord-postgres_enum

Usage

Migrations

create_enum :mood, %w(happy great been_better)

create_table :person do
  t.enum :person_mood, enum_type: :mood
end

Running the code above will create a person table, with a person_mood column of type mood. This will also be reflected in schema.rb, so rake db:schema:load works as expected.

To drop an existing enum:

drop_enum :mood

To rename an existing enum:

rename_enum :mood, :emotions

To add a value into existing enum:

add_enum_value :mood, "pensive"

To remove a value from existing enum:

Warning: make sure that value is not used anywhere in the database.

remove_enum_value :mood, "pensive"

To add a new enum column to an existing table:

def change
  create_enum :product_type, %w[one-off subscription]

  add_column :products, :type, :product_type
end

To rename a value:

rename_enum_value :mood, "pensive", "wistful"
Author

In the same orbit

Explore more open source projects

Let's solve your hard problems

Martians at a glance
18
years in business

We're experts at helping developer products grow, with a proven track record in UI design, product iterations, cost-effective scaling, and much more. We'll lay out a strategy before our engineers and designers leap into action.

If you prefer email, write to us at surrender@evilmartians.com