I am using gender field of my user table as enum type.
Migration also runs sucessfully. But the schema.rb get crashes.
After running the migration, my schema.rb looks:
ActiveRecord::Schema.define(version: 2018_07_23_115046) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
# Could not dump table "users" because of following StandardError
# Unknown type 'gender' for column 'gender'
end
my migration is:
class AddGenderToUsers < ActiveRecord::Migration[5.2]
def up
execute <<-SQL
CREATE TYPE gender AS ENUM ('male', 'female', 'not_sure', 'prefer_not_to_disclose');
SQL
add_column :users, :gender, :gender, index: true
end
def down
remove_column :users, :gender
execute <<-SQL
DROP TYPE gender;
SQL
end
end
I don't understand why the schema.rb crashes.
Unknown type 'gender' for column 'gender'enum gender: { male: 0, female: 1, not_sure: 2, prefer_not_to_disclose: 3 }line to your model class. this will provide you all functionality on application layer which you expect from database. btw according to the guides declaring an enumerated gender type has zero benefit. they are stored as normal text columns. btw this might be useful