annotate db/migrate/091_change_changesets_revision_to_string.rb @ 1613:90bed4e10cc8 deploy

Download file link
author Chris Cannam
date Wed, 30 Aug 2017 17:24:37 +0100
parents 261b3d9a4903
children
rev   line source
Chris@0 1 class ChangeChangesetsRevisionToString < ActiveRecord::Migration
Chris@0 2 def self.up
Chris@1464 3 # Some backends (eg. SQLServer 2012) do not support changing the type
Chris@1464 4 # of an indexed column so the index needs to be dropped first
Chris@1464 5 # BUT this index is renamed with some backends (at least SQLite3) for
Chris@1464 6 # some (unknown) reasons, thus we check for the other name as well
Chris@1464 7 # so we don't end up with 2 identical indexes
Chris@1464 8 if index_exists? :changesets, [:repository_id, :revision], :name => :changesets_repos_rev
Chris@1464 9 remove_index :changesets, :name => :changesets_repos_rev
Chris@1464 10 end
Chris@1464 11 if index_exists? :changesets, [:repository_id, :revision], :name => :altered_changesets_repos_rev
Chris@1464 12 remove_index :changesets, :name => :altered_changesets_repos_rev
Chris@1464 13 end
Chris@1464 14
Chris@0 15 change_column :changesets, :revision, :string, :null => false
Chris@1464 16
Chris@1464 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@1464 21 if index_exists? :changesets, :changesets_repos_rev
Chris@1464 22 remove_index :changesets, :name => :changesets_repos_rev
Chris@1464 23 end
Chris@1464 24 if index_exists? :changesets, [:repository_id, :revision], :name => :altered_changesets_repos_rev
Chris@1464 25 remove_index :changesets, :name => :altered_changesets_repos_rev
Chris@1464 26 end
Chris@1464 27
Chris@0 28 change_column :changesets, :revision, :integer, :null => false
Chris@1464 29
Chris@1464 30 add_index :changesets, [:repository_id, :revision], :unique => true, :name => :changesets_repos_rev
Chris@0 31 end
Chris@0 32 end