To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

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