Module Sequel::Postgres::EnumDatabaseMethods
In: lib/sequel/extensions/pg_enum.rb

Methods enabling Database object integration with enum types.

Methods

Public Class methods

Parse the available enum values when loading this extension into your database.

[Source]

    # File lib/sequel/extensions/pg_enum.rb, line 65
65:       def self.extended(db)
66:         db.send(:parse_enum_labels)
67:       end

Public Instance methods

Run the SQL to add the given value to the existing enum type. Options:

:after :Add the new value after this existing value.
:before :Add the new value before this existing value.
:if_not_exists :Do not raise an error if the value already exists in the enum.

[Source]

    # File lib/sequel/extensions/pg_enum.rb, line 74
74:       def add_enum_value(enum, value, opts=OPTS)
75:         sql = String.new
76:         sql << "ALTER TYPE #{quote_schema_table(enum)} ADD VALUE#{' IF NOT EXISTS' if opts[:if_not_exists]} #{literal(value.to_s)}"
77:         if v = opts[:before]
78:           sql << " BEFORE #{literal(v.to_s)}"
79:         elsif v = opts[:after]
80:           sql << " AFTER #{literal(v.to_s)}"
81:         end
82:         run sql
83:         parse_enum_labels
84:         nil
85:       end

Run the SQL to create an enum type with the given name and values.

[Source]

    # File lib/sequel/extensions/pg_enum.rb, line 88
88:       def create_enum(enum, values)
89:         sql = "CREATE TYPE #{quote_schema_table(enum)} AS ENUM (#{values.map{|v| literal(v.to_s)}.join(', ')})"
90:         run sql
91:         parse_enum_labels
92:         nil
93:       end

Run the SQL to drop the enum type with the given name. Options:

:if_exists :Do not raise an error if the enum type does not exist
:cascade :Also drop other objects that depend on the enum type

[Source]

     # File lib/sequel/extensions/pg_enum.rb, line 99
 99:       def drop_enum(enum, opts=OPTS)
100:         sql = "DROP TYPE#{' IF EXISTS' if opts[:if_exists]} #{quote_schema_table(enum)}#{' CASCADE' if opts[:cascade]}"
101:         run sql
102:         parse_enum_labels
103:         nil
104:       end

[Validate]