提交 33051202 编写于 作者: R Ryuta Kamizono

Exclude `:name` and `:type` from `prepare_column_options`

Actually `:name` and `:type` are not column options.
上级 b884ee6f
......@@ -7,15 +7,16 @@ module ConnectionAdapters # :nodoc:
# Adapter level by over-writing this code inside the database specific adapters
module ColumnDumper
def column_spec(column)
spec = prepare_column_options(column)
(spec.keys - [:name, :type]).each{ |k| spec[k].insert(0, "#{k}: ")}
spec = Hash[prepare_column_options(column).map { |k, v| [k, "#{k}: #{v}"] }]
spec[:name] = column.name.inspect
spec[:type] = schema_type(column).to_s
spec
end
def column_spec_for_primary_key(column)
return if column.type == :integer
spec = { id: schema_type(column).inspect }
spec.merge!(prepare_column_options(column).delete_if { |key, _| [:name, :type].include?(key) })
spec.merge!(prepare_column_options(column))
end
# This can be overridden on an Adapter level basis to support other
......@@ -23,9 +24,6 @@ def column_spec_for_primary_key(column)
# PostgreSQL::ColumnDumper)
def prepare_column_options(column)
spec = {}
spec[:name] = column.name.inspect
spec[:type] = schema_type(column).to_s
spec[:null] = 'false' unless column.null
if limit = schema_limit(column)
spec[:limit] = limit
......@@ -42,6 +40,8 @@ def prepare_column_options(column)
default = schema_default(column) if column.has_default?
spec[:default] = default unless default.nil?
spec[:null] = 'false' unless column.null
if collation = schema_collation(column)
spec[:collation] = collation
end
......
......@@ -13,7 +13,7 @@ def column_spec_for_primary_key(column)
return if spec.empty?
else
spec[:id] = schema_type(column).inspect
spec.merge!(prepare_column_options(column).delete_if { |key, _| [:name, :type, :null].include?(key) })
spec.merge!(prepare_column_options(column).delete_if { |key, _| key == :null })
end
spec
end
......
......@@ -12,7 +12,7 @@ def column_spec_for_primary_key(column)
spec[:default] = schema_default(column) || 'nil'
else
spec[:id] = schema_type(column).inspect
spec.merge!(prepare_column_options(column).delete_if { |key, _| [:name, :type, :null].include?(key) })
spec.merge!(prepare_column_options(column).delete_if { |key, _| key == :null })
end
spec
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册