Fixed migration broken with Rails 3.1.3 (#10320).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8996 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-02-25 11:46:19 +00:00
parent f01b97eb06
commit a98b65c2d4
1 changed files with 12 additions and 0 deletions

View File

@ -1,13 +1,25 @@
class ChangeAttachmentsContainerDefaults < ActiveRecord::Migration class ChangeAttachmentsContainerDefaults < ActiveRecord::Migration
def self.up def self.up
# Need to drop the index otherwise the following error occurs in Rails 3.1.3:
#
# Index name 'temp_index_altered_attachments_on_container_id_and_container_type' on
# table 'altered_attachments' is too long; the limit is 64 characters
remove_index :attachments, [:container_id, :container_type]
change_column :attachments, :container_id, :integer, :default => nil, :null => true change_column :attachments, :container_id, :integer, :default => nil, :null => true
change_column :attachments, :container_type, :string, :limit => 30, :default => nil, :null => true change_column :attachments, :container_type, :string, :limit => 30, :default => nil, :null => true
Attachment.update_all "container_id = NULL", "container_id = 0" Attachment.update_all "container_id = NULL", "container_id = 0"
Attachment.update_all "container_type = NULL", "container_type = ''" Attachment.update_all "container_type = NULL", "container_type = ''"
add_index :attachments, [:container_id, :container_type]
end end
def self.down def self.down
remove_index :attachments, [:container_id, :container_type]
change_column :attachments, :container_id, :integer, :default => 0, :null => false change_column :attachments, :container_id, :integer, :default => 0, :null => false
change_column :attachments, :container_type, :string, :limit => 30, :default => "", :null => false change_column :attachments, :container_type, :string, :limit => 30, :default => "", :null => false
add_index :attachments, [:container_id, :container_type]
end end
end end