@@ -17,3 +17,35 @@ def on_sym(node)
1717 insert_after ( node . loc . expression , "_and_actually_way_longer_because_cockroach_is_in_the_128_game" )
1818 end
1919end
20+
21+ # CockroachDB does not support DDL transactions. Hence the migration is
22+ # not rolled back and the already removed index is not restored.
23+ #
24+ # From:
25+ # if current_adapter?(:PostgreSQLAdapter, :SQLite3Adapter)
26+ # assert_equal 2, foreign_keys.size
27+ # else
28+ # assert_equal 1, foreign_keys.size
29+ # end
30+ #
31+ # To:
32+ # assert_equal 1, foreign_keys.size
33+ CopyCat . copy_methods ( self , self , :test_remove_foreign_key_on_8_0 ) do
34+ def on_if ( node )
35+ return unless node in
36+ [ :if ,
37+ [ :send , nil , :current_adapter? ,
38+ [ :sym , :PostgreSQLAdapter ] ,
39+ [ :sym , :SQLite3Adapter ] ] ,
40+ [ :send , nil , :assert_equal ,
41+ [ :int , 2 ] ,
42+ [ :send ,
43+ [ :lvar , :foreign_keys ] , :size ] ] ,
44+ [ :send , nil , :assert_equal ,
45+ [ :int , 1 ] ,
46+ [ :send ,
47+ [ :lvar , :foreign_keys ] , :size ] ] => else_block ]
48+
49+ replace ( node . loc . expression , else_block . location . expression . source )
50+ end
51+ end
0 commit comments