Sha256: 7f50e4332025375c4b21c024878eb27bed0d026babb594ce740ce5d872bb9078

Contents?: true

Size: 747 Bytes

Versions: 5

Compression:

Stored size: 747 Bytes

Contents

module ActiveRecord
  module ConnectionAdapters
    module Sqlserver
      class SchemaCreation < AbstractAdapter::SchemaCreation
        private

        def visit_ColumnDefinition(o)
          sql = super
          if o.primary_key? && o.type == :uuid
            sql << ' PRIMARY KEY '
            add_column_options!(sql, column_options(o))
          end
          sql
        end

        def add_column_options!(sql, options)
          column = options.fetch(:column) { return super }
          if [:uniqueidentifier, :uuid].include?(column.type) && options[:default] =~ /\(\)/
            sql << " DEFAULT #{options.delete(:default)}"
            super
          else
            super
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-4.0.4 lib/active_record/connection_adapters/sqlserver/schema_creation.rb
activerecord-sqlserver-adapter-4.0.3 lib/active_record/connection_adapters/sqlserver/schema_creation.rb
activerecord-sqlserver-adapter-4.0.2 lib/active_record/connection_adapters/sqlserver/schema_creation.rb
activerecord-sqlserver-adapter-4.0.1 lib/active_record/connection_adapters/sqlserver/schema_creation.rb
activerecord-sqlserver-adapter-4.0.0 lib/active_record/connection_adapters/sqlserver/schema_creation.rb