Skip to content

Commit 1fa97c7

Browse files
committed
Extract format_colspec to format column spec
1 parent c2fa536 commit 1fa97c7

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

activerecord/lib/active_record/connection_adapters/abstract/schema_dumper.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ module ConnectionAdapters # :nodoc:
77
# Adapter level by over-writing this code inside the database specific adapters
88
module ColumnDumper
99
def column_spec(column)
10-
spec = Hash[prepare_column_options(column).map { |k, v| [k, "#{k}: #{v}"] }]
11-
spec[:type] = schema_type(column).to_s
12-
spec
10+
[schema_type(column), prepare_column_options(column)]
1311
end
1412

1513
def column_spec_for_primary_key(column)

activerecord/lib/active_record/schema_dumper.rb

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,7 @@ def table(table, stream)
115115
pkcol = columns.detect { |c| c.name == pk }
116116
pkcolspec = @connection.column_spec_for_primary_key(pkcol)
117117
if pkcolspec.present?
118-
pkcolspec.each do |key, value|
119-
tbl.print ", #{key}: #{value}"
120-
end
118+
tbl.print ", #{format_colspec(pkcolspec)}"
121119
end
122120
when Array
123121
tbl.print ", primary_key: #{pk.inspect}"
@@ -133,16 +131,14 @@ def table(table, stream)
133131

134132
tbl.puts " do |t|"
135133

136-
# find all migration keys used in this table
137-
keys = @connection.migration_keys
138-
139134
# then dump all non-primary key columns
140135
columns.each do |column|
141136
raise StandardError, "Unknown type '#{column.sql_type}' for column '#{column.name}'" unless @connection.valid_type?(column.type)
142137
next if column.name == pk
143-
colspec = @connection.column_spec(column)
144-
values = [column.name.inspect] + keys.map { |key| colspec[key] }.compact
145-
tbl.puts " t.#{colspec[:type]} #{values.join(", ")}"
138+
type, colspec = @connection.column_spec(column)
139+
tbl.print " t.#{type} #{column.name.inspect}"
140+
tbl.print ", #{format_colspec(colspec)}" if colspec.present?
141+
tbl.puts
146142
end
147143

148144
indexes_in_create(table, tbl)
@@ -228,6 +224,10 @@ def foreign_keys(table, stream)
228224
end
229225
end
230226

227+
def format_colspec(colspec)
228+
colspec.map { |key, value| "#{key}: #{value}" }.join(", ")
229+
end
230+
231231
def format_options(options)
232232
options.map { |key, value| "#{key}: #{value.inspect}" }.join(", ")
233233
end

0 commit comments

Comments
 (0)