Sha256: 043051fa490703b2a16c48dc4fcfa13498d43d100eb8e44434e56de3872f2e5c

Contents?: true

Size: 1.16 KB

Versions: 24

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

module ActiveRecord
  module ConnectionAdapters
    module SQLServer
      class SchemaDumper < ConnectionAdapters::SchemaDumper
        SQLSEVER_NO_LIMIT_TYPES = [
          "text",
          "ntext",
          "varchar(max)",
          "nvarchar(max)",
          "varbinary(max)"
        ].freeze

        private

        def explicit_primary_key_default?(column)
          column.type == :integer && !column.is_identity?
        end

        def schema_limit(column)
          return if SQLSEVER_NO_LIMIT_TYPES.include?(column.sql_type)

          super
        end

        def schema_collation(column)
          return unless column.collation

          # use inspect to ensure collation is dumped as string. Without this it's dumped as
          # a constant ('collation: SQL_Latin1_General_CP1_CI_AS')
          collation = column.collation.inspect
          # use inspect to ensure string comparison
          default_collation = @connection.collation.inspect

          collation if collation != default_collation
        end

        def default_primary_key?(column)
          super && column.is_identity?
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-7.1.4 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.7 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.1.3 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.1.2 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.1.1 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.1.0 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.6 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.1.0.rc2 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.1.0.rc1 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.5.1 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.1.0.beta1 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.5.0 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.4.0 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.3.0 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.2.0 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-6.1.3.0 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.1.0 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.0.0 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-7.0.0.0.rc1 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb
activerecord-sqlserver-adapter-6.1.2.1 lib/active_record/connection_adapters/sqlserver/schema_dumper.rb