提交 469dd36a 编写于 作者: R Rafael França 提交者: GitHub

Merge pull request #26756 from kamipo/extract_format_colspec

Extract `format_colspec` to format column spec
......@@ -7,9 +7,7 @@ module ConnectionAdapters # :nodoc:
# Adapter level by over-writing this code inside the database specific adapters
module ColumnDumper
def column_spec(column)
spec = Hash[prepare_column_options(column).map { |k, v| [k, "#{k}: #{v}"] }]
spec[:type] = schema_type(column).to_s
spec
[schema_type(column), prepare_column_options(column)]
end
def column_spec_for_primary_key(column)
......
......@@ -115,9 +115,7 @@ def table(table, stream)
pkcol = columns.detect { |c| c.name == pk }
pkcolspec = @connection.column_spec_for_primary_key(pkcol)
if pkcolspec.present?
pkcolspec.each do |key, value|
tbl.print ", #{key}: #{value}"
end
tbl.print ", #{format_colspec(pkcolspec)}"
end
when Array
tbl.print ", primary_key: #{pk.inspect}"
......@@ -133,16 +131,14 @@ def table(table, stream)
tbl.puts " do |t|"
# find all migration keys used in this table
keys = @connection.migration_keys
# then dump all non-primary key columns
columns.each do |column|
raise StandardError, "Unknown type '#{column.sql_type}' for column '#{column.name}'" unless @connection.valid_type?(column.type)
next if column.name == pk
colspec = @connection.column_spec(column)
values = [column.name.inspect] + keys.map { |key| colspec[key] }.compact
tbl.puts " t.#{colspec[:type]} #{values.join(", ")}"
type, colspec = @connection.column_spec(column)
tbl.print " t.#{type} #{column.name.inspect}"
tbl.print ", #{format_colspec(colspec)}" if colspec.present?
tbl.puts
end
indexes_in_create(table, tbl)
......@@ -228,6 +224,10 @@ def foreign_keys(table, stream)
end
end
def format_colspec(colspec)
colspec.map { |key, value| "#{key}: #{value}" }.join(", ")
end
def format_options(options)
options.map { |key, value| "#{key}: #{value.inspect}" }.join(", ")
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册