lib/torque/postgresql/adapter/schema_dumper.rb in torque-postgresql-2.4.5 vs lib/torque/postgresql/adapter/schema_dumper.rb in torque-postgresql-3.0.0
- old
+ new
@@ -10,43 +10,20 @@
@connection.dump_mode!
stream
end
- def extensions(stream) # :nodoc:
- super
- user_defined_schemas(stream)
- user_defined_types(stream)
- end
-
# Translate +:enum_set+ into +:enum+
def schema_type(column)
column.type == :enum_set ? :enum : super
end
- # Adds +:enum_type+ option to the default set
- def prepare_column_options(column)
- spec = super
-
- if enum_type = schema_enum_type(column)
- spec[:enum_type] = enum_type
- end
-
- spec
- end
-
private
- def schema_enum_type(column)
- column.sql_type.to_sym.inspect if column.type == :enum || column.type == :enum_set
- end
-
def tables(stream) # :nodoc:
inherited_tables = @connection.inherited_tables
- sorted_tables = (@connection.tables - @connection.views).sort_by do |table_name|
- table_name.split(/(?:public)?\./).reverse
- end
+ sorted_tables = @connection.tables.sort - @connection.views
stream.puts " # These are the common tables"
(sorted_tables - inherited_tables.keys).each do |table_name|
table(table_name, stream) unless ignored?(table_name)
end
@@ -59,11 +36,11 @@
sub_stream = StringIO.new
table(table_name, sub_stream)
# Add the inherits setting
sub_stream.rewind
- inherits.map! { |parent| parent.to_s.sub(/\Apublic\./, '') }
+ inherits.map!(&:to_sym)
inherits = inherits.first if inherits.size === 1
inherits = ", inherits: #{inherits.inspect} do |t|"
table_dump = sub_stream.read.gsub(/ do \|t\|$/, inherits)
# Ensure bodyless definitions
@@ -83,44 +60,9 @@
views(stream) if defined?(::Scenic)
# FX integration
functions(stream) if defined?(::Fx::SchemaDumper::Function)
triggers(stream) if defined?(::Fx::SchemaDumper::Trigger)
- end
-
- # Make sure to remove the schema from the table name
- def remove_prefix_and_suffix(table)
- super(table.sub(/\A[a-z0-9_]*\./, ''))
- end
-
- # Dump user defined schemas
- def user_defined_schemas(stream)
- return if (list = (@connection.user_defined_schemas - ['public'])).empty?
-
- stream.puts " # Custom schemas defined in this database."
- list.each { |name| stream.puts " create_schema \"#{name}\", force: :cascade" }
- stream.puts
- end
-
- # Dump user defined types like enum
- def user_defined_types(stream)
- types = @connection.user_defined_types('e')
- return unless types.any?
-
- stream.puts " # Custom types defined in this database."
- stream.puts " # Note that some types may not work with other database engines. Be careful if changing 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
-
- # Dump enum custom type
- def enum(name, stream)
- values = @connection.enum_values(name).map { |v| "\"#{v}\"" }
- stream.puts " create_enum \"#{name}\", [#{values.join(', ')}], force: :cascade"
end
end
ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaDumper.prepend SchemaDumper
end