Changeset 1029

Show
Ignore:
Timestamp:
02/28/07 08:58:00 (3 years ago)
Author:
matthewl
Message:

Using ActiveRecord? in migrations is problematic. Changes in models can break old migrations. That's what happened here. Replaced use of models with hand written sql. Fixes ticket #151

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/db/migrate/035_create_filters_and_cached_sizes_table.rb

    r858 r1029  
    77    add_index :filters, [:filename, :uid] 
    88 
    9     Earth::Filter.create(:filename => '*', :uid => nil) 
    10     Earth::Filter.create(:filename => '*.zip', :uid => nil) 
    11     Earth::Filter.create(:filename => '*.jar', :uid => nil) 
    12     Earth::Filter.create(:filename => '*.gif', :uid => nil) 
     9    execute "INSERT INTO filters(filename, uid) VALUES ('*', NULL)" 
     10    execute "INSERT INTO filters(filename, uid) VALUES ('*.zip', NULL)" 
     11    execute "INSERT INTO filters(filename, uid) VALUES ('*.jar', NULL)" 
     12    execute "INSERT INTO filters(filename, uid) VALUES ('*.gif', NULL)" 
    1313     
    1414    create_table :cached_sizes do |t| 
  • trunk/db/migrate/042_replace_demo_filters.rb

    r884 r1029  
    11class ReplaceDemoFilters < ActiveRecord::Migration 
    22  def self.up 
    3     Earth::Filter.delete([2, 3, 4]) 
    4     Earth::Filter.create(:filename => '*.tiff', :uid => nil) 
     3    execute "DELETE FROM filters WHERE id IN (2, 3, 4)" 
     4    execute "INSERT INTO filters(filename, uid) VALUES ('*.tiff', NULL)" 
    55  end 
    66 
    77  def self.down 
    8     Earth::Filter.delete([5]) 
    9     Earth::Filter.create(:filename => '*.zip', :uid => nil) 
    10     Earth::Filter.create(:filename => '*.jar', :uid => nil) 
    11     Earth::Filter.create(:filename => '*.gif', :uid => nil) 
     8    execute "DELETE FROM filters WHERE id=5" 
     9    execute "INSERT INTO filters(filename, uid) VALUES ('*.zip', NULL)" 
     10    execute "INSERT INTO filters(filename, uid) VALUES ('*.jar', NULL)" 
     11    execute "INSERT INTO filters(filename, uid) VALUES ('*.gif', NULL)" 
    1212  end 
    1313end 
  • trunk/db/migrate/048_ensure_only_default_filter.rb

    r956 r1029  
    22class EnsureOnlyDefaultFilter < ActiveRecord::Migration 
    33  def self.up 
    4     Earth::Filter.delete_all("filename != '*' OR uid IS NOT NULL") 
    5     filter = Earth::Filter.find(:first, :conditions => "filename = '*' AND uid IS NULL") 
    6     if filter.nil? 
    7       filter = Earth::Filter.create(:filename => '*', :uid => nil) 
    8     end 
     4    execute "DELETE FROM filters WHERE filename != '*' OR uid IS NOT NULL" 
    95    # Delete cached sizes that aren't related to the default size 
    10     Earth::CachedSize.delete_all("filter_id != #{filter.id}") 
     6    execute "DELETE FROM cached_sizes WHERE filter_id != (SELECT id FROM filters WHERE filename = '*' AND uid IS NULL)" 
    117  end 
    128