lazy_migrate 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/Appraisals +9 -0
  4. data/Gemfile.lock +133 -4
  5. data/Guardfile +39 -0
  6. data/README.md +56 -6
  7. data/Rakefile +1 -3
  8. data/bin/exe/lazy_migrate +14 -1
  9. data/gemfiles/.bundle/config +2 -0
  10. data/gemfiles/rails_5_1_5.gemfile +8 -0
  11. data/gemfiles/rails_5_1_5.gemfile.lock +170 -0
  12. data/gemfiles/rails_5_2_4_3.gemfile +8 -0
  13. data/gemfiles/rails_5_2_4_3.gemfile.lock +178 -0
  14. data/github/demo.gif +0 -0
  15. data/lazy_migrate.gemspec +9 -3
  16. data/lib/lazy_migrate.rb +6 -2
  17. data/lib/lazy_migrate/client.rb +123 -0
  18. data/lib/lazy_migrate/migration.rb +14 -0
  19. data/lib/lazy_migrate/migrator_adapter.rb +144 -0
  20. data/lib/lazy_migrate/migrator_adapter_factory.rb +24 -0
  21. data/lib/lazy_migrate/new_migrator_adapter.rb +85 -0
  22. data/lib/lazy_migrate/old_migrator_adapter.rb +97 -0
  23. data/lib/lazy_migrate/version.rb +2 -1
  24. data/lib/tasks/lazy_migrate.rake +10 -0
  25. data/sorbet/config +2 -0
  26. data/sorbet/rbi/gems/actioncable.rbi +393 -0
  27. data/sorbet/rbi/gems/actionmailer.rbi +425 -0
  28. data/sorbet/rbi/gems/actionpack.rbi +3230 -0
  29. data/sorbet/rbi/gems/actionview.rbi +1153 -0
  30. data/sorbet/rbi/gems/activejob.rbi +282 -0
  31. data/sorbet/rbi/gems/activemodel.rbi +742 -0
  32. data/sorbet/rbi/gems/activerecord.rbi +4004 -0
  33. data/sorbet/rbi/gems/activestorage.rbi +174 -0
  34. data/sorbet/rbi/gems/activesupport.rbi +2300 -0
  35. data/sorbet/rbi/gems/appraisal.rbi +151 -0
  36. data/sorbet/rbi/gems/arel.rbi +1253 -0
  37. data/sorbet/rbi/gems/byebug.rbi +1041 -0
  38. data/sorbet/rbi/gems/coderay.rbi +92 -0
  39. data/sorbet/rbi/gems/concurrent-ruby.rbi +1586 -0
  40. data/sorbet/rbi/gems/crass.rbi +93 -0
  41. data/sorbet/rbi/gems/erubi.rbi +27 -0
  42. data/sorbet/rbi/gems/globalid.rbi +99 -0
  43. data/sorbet/rbi/gems/i18n.rbi +192 -0
  44. data/sorbet/rbi/gems/loofah.rbi +131 -0
  45. data/sorbet/rbi/gems/mail.rbi +1092 -0
  46. data/sorbet/rbi/gems/marcel.rbi +13 -0
  47. data/sorbet/rbi/gems/method_source.rbi +64 -0
  48. data/sorbet/rbi/gems/mini_mime.rbi +52 -0
  49. data/sorbet/rbi/gems/minitest.rbi +282 -0
  50. data/sorbet/rbi/gems/nio4r.rbi +68 -0
  51. data/sorbet/rbi/gems/nokogiri.rbi +1011 -0
  52. data/sorbet/rbi/gems/pastel.rbi +119 -0
  53. data/sorbet/rbi/gems/pry-byebug.rbi +155 -0
  54. data/sorbet/rbi/gems/pry.rbi +1949 -0
  55. data/sorbet/rbi/gems/rack-test.rbi +162 -0
  56. data/sorbet/rbi/gems/rack.rbi +525 -0
  57. data/sorbet/rbi/gems/rails-dom-testing.rbi +68 -0
  58. data/sorbet/rbi/gems/rails-html-sanitizer.rbi +92 -0
  59. data/sorbet/rbi/gems/railties.rbi +724 -0
  60. data/sorbet/rbi/gems/rake.rbi +666 -0
  61. data/sorbet/rbi/gems/rspec-core.rbi +1939 -0
  62. data/sorbet/rbi/gems/rspec-expectations.rbi +1123 -0
  63. data/sorbet/rbi/gems/rspec-mocks.rbi +1090 -0
  64. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  65. data/sorbet/rbi/gems/rspec.rbi +15 -0
  66. data/sorbet/rbi/gems/sprockets-rails.rbi +106 -0
  67. data/sorbet/rbi/gems/sprockets.rbi +755 -0
  68. data/sorbet/rbi/gems/sqlite3.rbi +354 -0
  69. data/sorbet/rbi/gems/thor.rbi +580 -0
  70. data/sorbet/rbi/gems/thread_safe.rbi +82 -0
  71. data/sorbet/rbi/gems/tty-color.rbi +44 -0
  72. data/sorbet/rbi/gems/tty-cursor.rbi +72 -0
  73. data/sorbet/rbi/gems/tty-prompt.rbi +531 -0
  74. data/sorbet/rbi/gems/tty-reader.rbi +176 -0
  75. data/sorbet/rbi/gems/tty-screen.rbi +66 -0
  76. data/sorbet/rbi/gems/tzinfo.rbi +406 -0
  77. data/sorbet/rbi/gems/websocket-driver.rbi +103 -0
  78. data/sorbet/rbi/gems/websocket-extensions.rbi +29 -0
  79. data/sorbet/rbi/gems/wisper.rbi +130 -0
  80. data/sorbet/rbi/hidden-definitions/errors.txt +7584 -0
  81. data/sorbet/rbi/hidden-definitions/hidden.rbi +13328 -0
  82. data/sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi +13 -0
  83. data/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +954 -0
  84. data/sorbet/rbi/sorbet-typed/lib/actionview/all/actionview.rbi +321 -0
  85. data/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +597 -0
  86. data/sorbet/rbi/sorbet-typed/lib/activerecord/<6/activerecord.rbi +13 -0
  87. data/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +16 -0
  88. data/sorbet/rbi/sorbet-typed/lib/activerecord/>=5/activerecord.rbi +53 -0
  89. data/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1454 -0
  90. data/sorbet/rbi/sorbet-typed/lib/activerecord/all/model_schema.rbi +79 -0
  91. data/sorbet/rbi/sorbet-typed/lib/activerecord/all/sanitization.rbi +36 -0
  92. data/sorbet/rbi/sorbet-typed/lib/activerecord/~>5.2.0/activerecord.rbi +447 -0
  93. data/sorbet/rbi/sorbet-typed/lib/activestorage/<=6.1/activestorage.rbi +82 -0
  94. data/sorbet/rbi/sorbet-typed/lib/activestorage/all/activestorage.rbi +177 -0
  95. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1431 -0
  96. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +108 -0
  97. data/sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi +25 -0
  98. data/sorbet/rbi/todo.rbi +18 -0
  99. data/sorbet/rbi/user-defined/activerecord.rbi +56 -0
  100. metadata +181 -7
  101. data/lib/lazy_migrate/migrator.rb +0 -186
@@ -0,0 +1,79 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi sorbet-typed
3
+ #
4
+ # If you would like to make changes to this file, great! Please upstream any changes you make here:
5
+ #
6
+ # https://github.com/sorbet/sorbet-typed/edit/master/lib/activerecord/all/model_schema.rbi
7
+ #
8
+ # typed: strong
9
+
10
+ # https://github.com/rails/rails/blob/5-2-stable/activerecord/lib/active_record/model_schema.rb
11
+ module ActiveRecord::ModelSchema::ClassMethods
12
+ sig { returns(String) }
13
+ def table_name
14
+ end
15
+
16
+ sig { params(value: String).void }
17
+ def table_name=(value)
18
+ end
19
+
20
+ sig { returns(String) }
21
+ def quoted_table_name
22
+ end
23
+
24
+ sig { returns(T::Array[String]) }
25
+ def protected_environments
26
+ end
27
+
28
+ sig { params(environments: T::Array[String]).void }
29
+ def protected_environments=(environments)
30
+ end
31
+
32
+ sig { returns(T.nilable(String)) }
33
+ def inheritance_column
34
+ end
35
+
36
+ sig { params(value: T.nilable(String)).void }
37
+ def inheritance_column=(value)
38
+ end
39
+
40
+ sig { returns(T::Array[String]) }
41
+ def ignored_columns
42
+ end
43
+
44
+ sig { params(columns: T::Array[String]).void }
45
+ def ignored_columns=(columns)
46
+ end
47
+
48
+ sig { returns(T.nilable(String)) }
49
+ def sequence_name
50
+ end
51
+
52
+ sig { params(value: String).void }
53
+ def sequence_name=(value)
54
+ end
55
+
56
+ sig { returns(T::Boolean) }
57
+ def prefetch_primary_key?
58
+ end
59
+
60
+ sig { returns(T::Boolean) }
61
+ def table_exists?
62
+ end
63
+
64
+ sig { returns(T::Hash[String, ActiveRecord::ConnectionAdapters::Column]) }
65
+ def columns_hash
66
+ end
67
+
68
+ sig { returns(T::Array[ActiveRecord::ConnectionAdapters::Column]) }
69
+ def columns
70
+ end
71
+
72
+ sig { returns(T::Hash[String, T.untyped]) }
73
+ def column_defaults
74
+ end
75
+
76
+ sig { returns(T::Array[ActiveRecord::ConnectionAdapters::Column]) }
77
+ def content_columns
78
+ end
79
+ end
@@ -0,0 +1,36 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi sorbet-typed
3
+ #
4
+ # If you would like to make changes to this file, great! Please upstream any changes you make here:
5
+ #
6
+ # https://github.com/sorbet/sorbet-typed/edit/master/lib/activerecord/all/sanitization.rbi
7
+ #
8
+ # typed: false
9
+
10
+ # https://github.com/rails/rails/blob/5-2-stable/activerecord/lib/active_record/sanitization.rb
11
+ module ActiveRecord::Sanitization::ClassMethods
12
+ sig { params(condition: T.any(T.nilable(String), T::Array[T.untyped])).returns(T.nilable(String)) }
13
+ def sanitize_sql_for_conditions(condition)
14
+ end
15
+ alias :sanitize_sql :sanitize_sql_for_conditions
16
+
17
+ sig { params(assignments: T.any(T::Array[T.untyped], T::Hash[T.untyped, T.untyped], String), default_table_name: String).returns(String) }
18
+ def sanitize_sql_for_assignment(assignments, default_table_name)
19
+ end
20
+
21
+ sig { params(condition: T.any(T::Array[T.untyped], String)).returns(String) }
22
+ def sanitize_sql_for_order(condition)
23
+ end
24
+
25
+ sig { params(attrs: T::Hash[T.untyped, T.untyped], table: String).returns(String) }
26
+ def sanitize_sql_hash_for_assignment(attrs, table)
27
+ end
28
+
29
+ sig { params(string: String, escape_character: String).returns(String) }
30
+ def sanitize_sql_like(string, escape_character = "\\")
31
+ end
32
+
33
+ sig { params(ary: T::Array[T.untyped]).returns(String) }
34
+ def sanitize_sql_array(ary)
35
+ end
36
+ end
@@ -0,0 +1,447 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi sorbet-typed
3
+ #
4
+ # If you would like to make changes to this file, great! Please upstream any changes you make here:
5
+ #
6
+ # https://github.com/sorbet/sorbet-typed/edit/master/lib/activerecord/~>5.2.0/activerecord.rbi
7
+ #
8
+ # typed: strong
9
+
10
+ class ActiveRecord::Migration::Compatibility::V5_1 < ActiveRecord::Migration::Current; end
11
+
12
+ ActiveRecord::Migration::Compatibility::V5_2 = ActiveRecord::Migration::Current
13
+
14
+ # Method definitions are documented here:
15
+ # https://api.rubyonrails.org/v5.2/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html
16
+ class ActiveRecord::Migration::Current < ActiveRecord::Migration
17
+ # Tables
18
+
19
+ # https://github.com/rails/rails/blob/v5.2.3/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb#L151-L290
20
+ sig do
21
+ params(
22
+ table_name: T.any(String, Symbol),
23
+ comment: T.untyped,
24
+ id: T.any(T::Boolean, Symbol),
25
+ primary_key: T.any(String, Symbol, T::Array[T.any(String, Symbol)]),
26
+ options: T.untyped,
27
+ temporary: T::Boolean,
28
+ force: T.any(T::Boolean, Symbol),
29
+ as: T.untyped,
30
+ blk: T.nilable(T.proc.params(t: ActiveRecord::ConnectionAdapters::TableDefinition).void)
31
+ ).returns(T.untyped)
32
+ end
33
+ def create_table(
34
+ table_name,
35
+ comment: nil,
36
+ id: :primary_key,
37
+ primary_key: :_,
38
+ options: nil,
39
+ temporary: false,
40
+ force: false,
41
+ as: nil,
42
+ &blk
43
+ ); end
44
+
45
+ sig do
46
+ params(
47
+ table_name: T.any(String, Symbol),
48
+ bulk: T::Boolean,
49
+ blk: T.proc.params(t: ActiveRecord::ConnectionAdapters::Table).void
50
+ ).void
51
+ end
52
+ def change_table(
53
+ table_name,
54
+ bulk: false,
55
+ &blk
56
+ ); end
57
+
58
+ sig { params(table_name: T.any(String, Symbol), new_name: T.any(String, Symbol)).void }
59
+ def rename_table(table_name, new_name); end
60
+
61
+ sig do
62
+ params(
63
+ table_name: T.any(String, Symbol),
64
+ force: T.any(T::Boolean, Symbol),
65
+ if_exists: T::Boolean,
66
+ blk: T.nilable(T.proc.params(t: ActiveRecord::ConnectionAdapters::TableDefinition).void)
67
+ ).void
68
+ end
69
+ def drop_table(
70
+ table_name,
71
+ force: false,
72
+ if_exists: false,
73
+ &blk
74
+ ); end
75
+
76
+ # Join Tables
77
+
78
+ sig do
79
+ params(
80
+ table_1: T.any(String, Symbol),
81
+ table_2: T.any(String, Symbol),
82
+ column_options: T.untyped,
83
+ table_name: T.any(String, Symbol),
84
+ temporary: T.untyped,
85
+ force: T::Boolean,
86
+ blk: T.nilable(T.proc.params(t: ActiveRecord::ConnectionAdapters::TableDefinition).void)
87
+ ).void
88
+ end
89
+ def create_join_table(
90
+ table_1,
91
+ table_2,
92
+ column_options: {},
93
+ table_name: nil,
94
+ temporary: nil,
95
+ force: false,
96
+ &blk
97
+ ); end
98
+
99
+ sig do
100
+ params(
101
+ table_1: T.any(String, Symbol),
102
+ table_2: T.any(String, Symbol),
103
+ options: T.untyped,
104
+ blk: T.nilable(T.proc.params(t: ActiveRecord::ConnectionAdapters::TableDefinition).void)
105
+ ).void
106
+ end
107
+ def drop_join_table(
108
+ table_1,
109
+ table_2,
110
+ options = {},
111
+ &blk
112
+ ); end
113
+
114
+ # Columns
115
+
116
+ sig do
117
+ params(
118
+ table_name: T.any(String, Symbol),
119
+ column_name: T.any(String, Symbol),
120
+ type: T.any(String, Symbol),
121
+ limit: T.untyped,
122
+ default: T.untyped,
123
+ null: T::Boolean,
124
+ precision: Integer,
125
+ scale: Integer,
126
+ comment: String,
127
+ array: T::Boolean
128
+ ).void
129
+ end
130
+ def add_column(
131
+ table_name,
132
+ column_name,
133
+ type,
134
+ limit: nil,
135
+ default: nil,
136
+ null: nil,
137
+ precision: nil,
138
+ scale: nil,
139
+ comment: nil,
140
+ array: nil
141
+ ); end
142
+
143
+ sig do
144
+ params(
145
+ table_name: T.any(String, Symbol),
146
+ column_name: T.any(String, Symbol),
147
+ type: T.any(String, Symbol),
148
+ limit: T.untyped,
149
+ default: T.untyped,
150
+ null: T::Boolean,
151
+ precision: Integer,
152
+ scale: Integer,
153
+ comment: String
154
+ ).void
155
+ end
156
+ def change_column(
157
+ table_name,
158
+ column_name,
159
+ type,
160
+ limit: nil,
161
+ default: nil,
162
+ null: nil,
163
+ precision: nil,
164
+ scale: nil,
165
+ comment: nil
166
+ ); end
167
+
168
+ sig do
169
+ params(
170
+ table_name: T.any(String, Symbol),
171
+ column_name: T.any(String, Symbol),
172
+ null: T::Boolean,
173
+ default: T.untyped
174
+ ).void
175
+ end
176
+ def change_column_null(table_name, column_name, null, default = nil); end
177
+
178
+ sig { params(table_name: T.any(String, Symbol), column_name: T.any(String, Symbol), default_or_changes: T.untyped).void }
179
+ def change_column_default(table_name, column_name, default_or_changes); end
180
+
181
+ sig { params(table_name: T.any(String, Symbol), column_name: T.any(String, Symbol), new_column_name: T.any(String, Symbol)).void }
182
+ def rename_column(table_name, column_name, new_column_name); end
183
+
184
+ sig do
185
+ params(
186
+ table_name: T.any(String, Symbol),
187
+ column_name: T.any(String, Symbol),
188
+ type: T.nilable(T.any(String, Symbol)),
189
+ options: T.untyped
190
+ ).void
191
+ end
192
+ def remove_column(
193
+ table_name,
194
+ column_name,
195
+ type = nil,
196
+ options = {}
197
+ ); end
198
+
199
+ sig { params(table_name: T.any(String, Symbol), column_names: T.any(String, Symbol)).void }
200
+ def remove_columns(table_name, *column_names); end
201
+
202
+ # Foreign Keys
203
+
204
+ sig do
205
+ params(
206
+ from_table: T.any(String, Symbol),
207
+ to_table: T.any(String, Symbol),
208
+ column: T.any(String, Symbol),
209
+ primary_key: T.any(String, Symbol),
210
+ name: T.any(String, Symbol),
211
+ on_delete: Symbol,
212
+ on_update: Symbol,
213
+ validate: T::Boolean
214
+ ).void
215
+ end
216
+ def add_foreign_key(
217
+ from_table,
218
+ to_table,
219
+ column: nil,
220
+ primary_key: nil,
221
+ name: nil,
222
+ on_delete: nil,
223
+ on_update: nil,
224
+ validate: true
225
+ ); end
226
+
227
+ sig do
228
+ params(
229
+ from_table: T.any(String, Symbol),
230
+ to_table: T.nilable(T.any(String, Symbol)),
231
+ column: T.any(String, Symbol),
232
+ primary_key: T.any(String, Symbol),
233
+ name: T.any(String, Symbol),
234
+ on_delete: Symbol,
235
+ on_update: Symbol,
236
+ validate: T::Boolean
237
+ ).void
238
+ end
239
+ def remove_foreign_key(
240
+ from_table,
241
+ to_table = nil,
242
+ column: nil,
243
+ primary_key: nil,
244
+ name: nil,
245
+ on_delete: nil,
246
+ on_update: nil,
247
+ validate: true
248
+ ); end
249
+
250
+ sig do
251
+ params(
252
+ from_table: T.any(String, Symbol),
253
+ to_table: T.any(String, Symbol),
254
+ name: T.any(String, Symbol),
255
+ column: T.any(String, Symbol),
256
+ options: T.untyped
257
+ ).returns(T::Boolean)
258
+ end
259
+ def foreign_key_exists?(from_table, to_table = nil, name: nil, column: nil, **options); end
260
+
261
+ sig { params(table_name: T.any(String, Symbol)).returns(T::Array[T.untyped]) }
262
+ def foreign_keys(table_name); end
263
+
264
+ # Indices
265
+
266
+ sig do
267
+ params(
268
+ table_name: T.any(String, Symbol),
269
+ column_name: T.any(String, Symbol, T::Array[T.any(String, Symbol)]),
270
+ using: T.untyped,
271
+ unique: T::Boolean,
272
+ where: T.untyped,
273
+ order: T.untyped,
274
+ name: T.any(String, Symbol),
275
+ length: T.untyped,
276
+ opclass: T.untyped,
277
+ type: T.untyped,
278
+ internal: T.untyped,
279
+ algorithm: T.untyped
280
+ ).void
281
+ end
282
+ def add_index(
283
+ table_name,
284
+ column_name,
285
+ using: nil,
286
+ unique: false,
287
+ where: nil,
288
+ order: nil,
289
+ name: nil,
290
+ length: nil,
291
+ opclass: nil,
292
+ type: nil,
293
+ internal: nil,
294
+ algorithm: nil
295
+ ); end
296
+
297
+ sig do
298
+ params(
299
+ table_name: T.any(String, Symbol),
300
+ column: T.any(String, Symbol, T::Array[T.any(String, Symbol)]),
301
+ using: T.untyped,
302
+ unique: T::Boolean,
303
+ where: T.untyped,
304
+ order: T.untyped,
305
+ name: T.any(String, Symbol),
306
+ length: T.untyped,
307
+ opclass: T.untyped,
308
+ type: T.untyped,
309
+ internal: T.untyped,
310
+ algorithm: T.untyped
311
+ ).void
312
+ end
313
+ def remove_index(
314
+ table_name,
315
+ column,
316
+ using: nil,
317
+ unique: false,
318
+ where: nil,
319
+ order: nil,
320
+ name: nil,
321
+ length: nil,
322
+ opclass: nil,
323
+ type: nil,
324
+ internal: nil,
325
+ algorithm: nil
326
+ ); end
327
+
328
+ sig do
329
+ params(
330
+ table_name: T.any(String, Symbol),
331
+ old_name: T.any(String, Symbol),
332
+ new_name: T.any(String, Symbol)
333
+ ).void
334
+ end
335
+ def rename_index(
336
+ table_name,
337
+ old_name,
338
+ new_name
339
+ ); end
340
+
341
+ sig do
342
+ params(
343
+ table_name: T.any(String, Symbol),
344
+ column_name: T.any(String, Symbol),
345
+ options: T.untyped
346
+ ).returns(T::Boolean)
347
+ end
348
+ def index_exists?(table_name, column_name, options = {}); end
349
+
350
+ sig { params(table_name: T.any(String, Symbol), index_name: T.any(String, Symbol)).returns(T::Boolean) }
351
+ def index_name_exists?(table_name, index_name); end
352
+
353
+ sig do
354
+ params(
355
+ table_name: T.any(String, Symbol),
356
+ column_name: T.any(String, Symbol),
357
+ type: T.nilable(T.any(String, Symbol)),
358
+ options: T.untyped
359
+ ).returns(T::Boolean)
360
+ end
361
+ def column_exists?(table_name, column_name, type = nil, options = {}); end
362
+
363
+ sig { params(table_name: T.any(String, Symbol)).returns(T::Array[T.untyped]) }
364
+ def indexes(table_name); end
365
+
366
+ # References
367
+
368
+ sig do
369
+ params(
370
+ table_name: T.any(String, Symbol),
371
+ ref_name: T.any(String, Symbol),
372
+ type: T.any(String, Symbol),
373
+ index: T.any(T::Boolean, T::Hash[Symbol, T.untyped]),
374
+ foreign_key: T.any(T::Boolean, T::Hash[Symbol, T.untyped]),
375
+ polymorphic: T::Boolean,
376
+ null: T.untyped
377
+ ).void
378
+ end
379
+ def add_reference(
380
+ table_name,
381
+ ref_name,
382
+ type: :bigint,
383
+ index: true,
384
+ foreign_key: false,
385
+ polymorphic: false,
386
+ null: nil
387
+ ); end
388
+
389
+ alias add_belongs_to add_reference
390
+
391
+ sig do
392
+ params(
393
+ table_name: T.any(String, Symbol),
394
+ ref_name: T.any(String, Symbol),
395
+ type: T.any(String, Symbol),
396
+ index: T.any(T::Boolean, T::Hash[Symbol, T.untyped]),
397
+ foreign_key: T.any(T::Boolean, T::Hash[Symbol, T.untyped]),
398
+ polymorphic: T::Boolean,
399
+ null: T.untyped
400
+ ).void
401
+ end
402
+ def remove_reference(
403
+ table_name,
404
+ ref_name,
405
+ type: :bigint,
406
+ index: true,
407
+ foreign_key: false,
408
+ polymorphic: false,
409
+ null: nil
410
+ ); end
411
+
412
+ # Timestamps
413
+
414
+ sig { params(table_name: T.any(String, Symbol), options: T.untyped).void }
415
+ def add_timestamps(table_name, options = {}); end
416
+
417
+ sig { params(table_name: T.any(String, Symbol), options: T.untyped).void }
418
+ def remove_timestamps(table_name, options = {}); end
419
+
420
+ # Extensions
421
+
422
+ sig { params(name: T.any(String, Symbol)).void }
423
+ def enable_extension(name); end
424
+
425
+ sig { params(name: T.any(String, Symbol)).void }
426
+ def disable_extension(name); end
427
+
428
+ # Miscellaneous
429
+
430
+ sig { params(message: String, subitem: T.untyped).void }
431
+ def say(message, subitem = false); end
432
+
433
+ sig { params(message: String, blk: T.untyped).returns(T.untyped) }
434
+ def say_with_time(message, &blk); end
435
+
436
+ sig { params(blk: T.untyped).void }
437
+ def suppress_messages(&blk); end
438
+
439
+ sig { params(blk: T.proc.params(arg0: T.untyped).void).void }
440
+ def reversible(&blk); end
441
+
442
+ sig { params(migration_classes: T.untyped, blk: T.nilable(T.proc.params(arg0: T.untyped).void)).void }
443
+ def revert(*migration_classes, &blk); end
444
+
445
+ sig { params(sql: String, name: T.nilable(String)).returns(T.untyped) }
446
+ def execute(sql, name = nil); end
447
+ end