Sha256: a203f01a8e18335a9074107e4d19e834dff202684da0fe233bd432328f9d1c3d

Contents?: true

Size: 1.02 KB

Versions: 8

Compression:

Stored size: 1.02 KB

Contents

module Torque
  module PostgreSQL
    module SchemaDumper

      def extensions(stream)
        super
        user_defined_types(stream)
      end

      private

        def user_defined_types(stream)
          types = @connection.user_defined_types
          return unless types.any?

          stream.puts "  # These are user-defined types used on this database"
          types.each do |name, type|
            raise StandardError, "User-defined type '#{name}' cannot be dumped!" if type.blank?
            send(type.to_sym, name, stream)
          end
          stream.puts
        rescue => e
          stream.puts "# Could not dump user-defined types because of following #{e.class}"
          stream.puts "#   #{e.message}"
          stream.puts
        end

        def enum(name, stream)
          values = @connection.enum_values(name).map { |v| "\"#{v}\"" }
          stream.puts "  create_enum \"#{name}\", [#{values.join(', ')}], force: :cascade"
        end

    end

    ActiveRecord::SchemaDumper.prepend SchemaDumper
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
torque-postgresql-0.1.7 lib/torque/postgresql/schema_dumper.rb
torque-postgresql-0.1.6 lib/torque/postgresql/schema_dumper.rb
torque-postgresql-0.1.5 lib/torque/postgresql/schema_dumper.rb
torque-postgresql-0.1.4 lib/torque/postgresql/schema_dumper.rb
torque-postgresql-0.1.3 lib/torque/postgresql/schema_dumper.rb
torque-postgresql-0.1.2 lib/torque/postgresql/schema_dumper.rb
torque-postgresql-0.1.1 lib/torque/postgresql/schema_dumper.rb
torque-postgresql-0.1.0 lib/torque/postgresql/schema_dumper.rb