Chris@0
|
1 class ChangeChangesetsRevisionToString < ActiveRecord::Migration
|
Chris@0
|
2 def self.up
|
Chris@1295
|
3 # Some backends (eg. SQLServer 2012) do not support changing the type
|
Chris@1295
|
4 # of an indexed column so the index needs to be dropped first
|
Chris@1295
|
5 # BUT this index is renamed with some backends (at least SQLite3) for
|
Chris@1295
|
6 # some (unknown) reasons, thus we check for the other name as well
|
Chris@1295
|
7 # so we don't end up with 2 identical indexes
|
Chris@1295
|
8 if index_exists? :changesets, [:repository_id, :revision], :name => :changesets_repos_rev
|
Chris@1295
|
9 remove_index :changesets, :name => :changesets_repos_rev
|
Chris@1295
|
10 end
|
Chris@1295
|
11 if index_exists? :changesets, [:repository_id, :revision], :name => :altered_changesets_repos_rev
|
Chris@1295
|
12 remove_index :changesets, :name => :altered_changesets_repos_rev
|
Chris@1295
|
13 end
|
Chris@1295
|
14
|
Chris@0
|
15 change_column :changesets, :revision, :string, :null => false
|
Chris@1295
|
16
|
Chris@1295
|
17 add_index :changesets, [:repository_id, :revision], :unique => true, :name => :changesets_repos_rev
|
Chris@0
|
18 end
|
Chris@0
|
19
|
Chris@0
|
20 def self.down
|
Chris@1295
|
21 if index_exists? :changesets, :changesets_repos_rev
|
Chris@1295
|
22 remove_index :changesets, :name => :changesets_repos_rev
|
Chris@1295
|
23 end
|
Chris@1295
|
24 if index_exists? :changesets, [:repository_id, :revision], :name => :altered_changesets_repos_rev
|
Chris@1295
|
25 remove_index :changesets, :name => :altered_changesets_repos_rev
|
Chris@1295
|
26 end
|
Chris@1295
|
27
|
Chris@0
|
28 change_column :changesets, :revision, :integer, :null => false
|
Chris@1295
|
29
|
Chris@1295
|
30 add_index :changesets, [:repository_id, :revision], :unique => true, :name => :changesets_repos_rev
|
Chris@0
|
31 end
|
Chris@0
|
32 end
|