module Torque::PostgreSQL::Adapter::SchemaDumper
Public Instance Methods
prepare_column_options(column)
click to toggle source
Adds :subtype
option to the default set
Calls superclass method
# File lib/torque/postgresql/adapter/schema_dumper.rb, line 26 def prepare_column_options(column) spec = super if subtype = schema_subtype(column) spec[:subtype] = subtype end spec end
schema_type(column)
click to toggle source
Translate :enum_set
into :enum
Calls superclass method
# File lib/torque/postgresql/adapter/schema_dumper.rb, line 21 def schema_type(column) column.type == :enum_set ? :enum : super end
Private Instance Methods
enum(name, stream)
click to toggle source
Dump enum custom type
# File lib/torque/postgresql/adapter/schema_dumper.rb, line 102 def enum(name, stream) values = @connection.enum_values(name).map { |v| "\"#{v}\"" } stream.puts " create_enum \"#{name}\", [#{values.join(', ')}], force: :cascade" end
schema_subtype(column)
click to toggle source
# File lib/torque/postgresql/adapter/schema_dumper.rb, line 38 def schema_subtype(column) column.sql_type.to_sym.inspect if column.type == :enum || column.type == :enum_set end
user_defined_types(stream)
click to toggle source
Dump user defined types like enum
# File lib/torque/postgresql/adapter/schema_dumper.rb, line 88 def user_defined_types(stream) types = @connection.user_defined_types('e') return unless types.any? stream.puts " # These are user-defined types used on this database" types.sort_by(&:first).each { |(name, type)| send(type.to_sym, name, stream) } stream.puts rescue => e stream.puts "# Could not dump user-defined types because of following #{e.class}" stream.puts "# #{e.message}" stream.puts end