Skip to content

Commit 40c7be3

Browse files
committed
Refactor schema dumper around constraint dumping
* Separate commands and arguments * Remove `add_` prefix from constraint statements variable name * Actually these are not add statements unlike foreign keys * etc
1 parent 2bf28a4 commit 40c7be3

File tree

2 files changed

+13
-28
lines changed

2 files changed

+13
-28
lines changed

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

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,44 +41,32 @@ def schemas(stream)
4141

4242
def exclusion_constraints_in_create(table, stream)
4343
if (exclusion_constraints = @connection.exclusion_constraints(table)).any?
44-
add_exclusion_constraint_statements = exclusion_constraints.map do |exclusion_constraint|
45-
parts = [
46-
"t.exclusion_constraint #{exclusion_constraint.expression.inspect}"
47-
]
48-
44+
exclusion_constraint_statements = exclusion_constraints.map do |exclusion_constraint|
45+
parts = [ exclusion_constraint.expression.inspect ]
4946
parts << "where: #{exclusion_constraint.where.inspect}" if exclusion_constraint.where
5047
parts << "using: #{exclusion_constraint.using.inspect}" if exclusion_constraint.using
5148
parts << "deferrable: #{exclusion_constraint.deferrable.inspect}" if exclusion_constraint.deferrable
49+
parts << "name: #{exclusion_constraint.name.inspect}" if exclusion_constraint.export_name_on_schema_dump?
5250

53-
if exclusion_constraint.export_name_on_schema_dump?
54-
parts << "name: #{exclusion_constraint.name.inspect}"
55-
end
56-
57-
" #{parts.join(', ')}"
51+
" t.exclusion_constraint #{parts.join(', ')}"
5852
end
5953

60-
stream.puts add_exclusion_constraint_statements.sort.join("\n")
54+
stream.puts exclusion_constraint_statements.sort.join("\n")
6155
end
6256
end
6357

6458
def unique_constraints_in_create(table, stream)
6559
if (unique_constraints = @connection.unique_constraints(table)).any?
66-
add_unique_constraint_statements = unique_constraints.map do |unique_constraint|
67-
parts = [
68-
"t.unique_constraint #{unique_constraint.column.inspect}"
69-
]
70-
60+
unique_constraint_statements = unique_constraints.map do |unique_constraint|
61+
parts = [ unique_constraint.column.inspect ]
7162
parts << "nulls_not_distinct: #{unique_constraint.nulls_not_distinct.inspect}" if unique_constraint.nulls_not_distinct
7263
parts << "deferrable: #{unique_constraint.deferrable.inspect}" if unique_constraint.deferrable
64+
parts << "name: #{unique_constraint.name.inspect}" if unique_constraint.export_name_on_schema_dump?
7365

74-
if unique_constraint.export_name_on_schema_dump?
75-
parts << "name: #{unique_constraint.name.inspect}"
76-
end
77-
78-
" #{parts.join(', ')}"
66+
" t.unique_constraint #{parts.join(', ')}"
7967
end
8068

81-
stream.puts add_unique_constraint_statements.sort.join("\n")
69+
stream.puts unique_constraint_statements.sort.join("\n")
8270
end
8371
end
8472

activerecord/lib/active_record/schema_dumper.rb

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ def foreign_keys(table, stream)
317317
if (foreign_keys = @connection.foreign_keys(table)).any?
318318
add_foreign_key_statements = foreign_keys.map do |foreign_key|
319319
parts = [
320-
"add_foreign_key #{remove_prefix_and_suffix(foreign_key.from_table).inspect}",
320+
remove_prefix_and_suffix(foreign_key.from_table).inspect,
321321
remove_prefix_and_suffix(foreign_key.to_table).inspect,
322322
]
323323

@@ -329,16 +329,13 @@ def foreign_keys(table, stream)
329329
parts << "primary_key: #{foreign_key.primary_key.inspect}"
330330
end
331331

332-
if foreign_key.export_name_on_schema_dump?
333-
parts << "name: #{foreign_key.name.inspect}"
334-
end
335-
332+
parts << "name: #{foreign_key.name.inspect}" if foreign_key.export_name_on_schema_dump?
336333
parts << "on_update: #{foreign_key.on_update.inspect}" if foreign_key.on_update
337334
parts << "on_delete: #{foreign_key.on_delete.inspect}" if foreign_key.on_delete
338335
parts << "deferrable: #{foreign_key.deferrable.inspect}" if foreign_key.deferrable
339336
parts << "validate: #{foreign_key.validate?.inspect}" unless foreign_key.validate?
340337

341-
" #{parts.join(', ')}"
338+
" add_foreign_key #{parts.join(', ')}"
342339
end
343340

344341
stream.puts add_foreign_key_statements.sort.join("\n")

0 commit comments

Comments
 (0)