To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
root / db / migrate / 20120223110929_change_attachments_container_defaults.rb @ 1298:4f746d8966dd
History | View | Annotate | Download (1.11 KB)
| 1 |
class ChangeAttachmentsContainerDefaults < ActiveRecord::Migration |
|---|---|
| 2 |
def self.up |
| 3 |
# Need to drop the index otherwise the following error occurs in Rails 3.1.3:
|
| 4 |
#
|
| 5 |
# Index name 'temp_index_altered_attachments_on_container_id_and_container_type' on
|
| 6 |
# table 'altered_attachments' is too long; the limit is 64 characters
|
| 7 |
remove_index :attachments, [:container_id, :container_type] |
| 8 |
|
| 9 |
change_column :attachments, :container_id, :integer, :default => nil, :null => true |
| 10 |
change_column :attachments, :container_type, :string, :limit => 30, :default => nil, :null => true |
| 11 |
Attachment.update_all "container_id = NULL", "container_id = 0" |
| 12 |
Attachment.update_all "container_type = NULL", "container_type = ''" |
| 13 |
|
| 14 |
add_index :attachments, [:container_id, :container_type] |
| 15 |
end
|
| 16 |
|
| 17 |
def self.down |
| 18 |
remove_index :attachments, [:container_id, :container_type] |
| 19 |
|
| 20 |
change_column :attachments, :container_id, :integer, :default => 0, :null => false |
| 21 |
change_column :attachments, :container_type, :string, :limit => 30, :default => "", :null => false |
| 22 |
|
| 23 |
add_index :attachments, [:container_id, :container_type] |
| 24 |
end
|
| 25 |
end
|