20120223110929_change_attachments_container_defaults.rb
25 lines
| 1.1 KiB
| text/x-ruby
|
RubyLexer
|
r8814 | class ChangeAttachmentsContainerDefaults < ActiveRecord::Migration | ||
def self.up | ||||
|
r8876 | # 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] | ||||
|
r8814 | change_column :attachments, :container_id, :integer, :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_type = NULL", "container_type = ''" | ||||
|
r8876 | |||
add_index :attachments, [:container_id, :container_type] | ||||
|
r8814 | end | ||
def self.down | ||||
|
r8876 | remove_index :attachments, [:container_id, :container_type] | ||
|
r8814 | change_column :attachments, :container_id, :integer, :default => 0, :null => false | ||
change_column :attachments, :container_type, :string, :limit => 30, :default => "", :null => false | ||||
|
r8876 | |||
add_index :attachments, [:container_id, :container_type] | ||||
|
r8814 | end | ||
end | ||||