Method: ActiveRecord::ConnectionAdapters::PostgreSQLAdapter#create_enum
- Defined in:
- lib/active_record/connection_adapters/postgresql_adapter.rb
#create_enum(name, values) ⇒ Object
Given a name and an array of values, creates an enum type.
472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 |
# File 'lib/active_record/connection_adapters/postgresql_adapter.rb', line 472 def create_enum(name, values) sql_values = values.map { |s| "'#{s}'" }.join(", ") query = <<~SQL DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_type t WHERE t.typname = '#{name}' ) THEN CREATE TYPE \"#{name}\" AS ENUM (#{sql_values}); END IF; END $$; SQL exec_query(query) end |