The migration to remove the unique constraint works great (below) but
when I try to roll it back I get the following from sqlite:

$ rake db:rollback
(in /Users/username/Sites/heroku)
==  CleanUpSnippetConstraints1: reverting
=====================================
-- remove_index(:snippets, {:name=>"index_snippets_on_name"})
   -> 0.0010s
-- add_index("snippets", ["name"], {:unique=>true, :name=>"name"})
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::ConstraintException: indexed columns are not unique: CREATE
UNIQUE INDEX "name" ON "snippets" ("name")

$ cat db/migrate/20091003095746_clean_up_snippet_constraints1.rb
class CleanUpSnippetConstraints1 < ActiveRecord::Migration
  def self.up
    remove_index :snippets, :name => "name"
    add_index :snippets, ["name"], :name =>
"index_snippets_on_name", :unique => false
  end

  def self.down
    remove_index :snippets, :name => "index_snippets_on_name"
    add_index "snippets", ["name"], :name => "name", :unique => true
  end
end

$ rake db:migrate
(in /Users/username/Sites/heroku)
==  CleanUpSnippetConstraints1: migrating
=====================================
-- remove_index(:snippets, {:name=>"name"})
   -> 0.0004s
-- add_index(:snippets, ["name"],
{:unique=>false, :name=>"index_snippets_on_name"})
   -> 0.0753s
==  CleanUpSnippetConstraints1: migrated (0.0760s)
============================

Reply via email to