<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Michel Loiseleur wrote:<br>
<blockquote
 cite="mid:1254168512-4166-3-git-send-email-mloiseleur@linagora.com"
 type="cite">
  <pre wrap="">
diff --git a/src/db/migrate/027_fix_uniqueness_constraints_in_bondings_nics.rb b/src/db/migrate/027_fix_uniqueness_constraints_in_bondings_nics.rb
index 5f58c5c..e2c638c 100644
--- a/src/db/migrate/027_fix_uniqueness_constraints_in_bondings_nics.rb
+++ b/src/db/migrate/027_fix_uniqueness_constraints_in_bondings_nics.rb
@@ -1,8 +1,18 @@
 
 class FixUniquenessConstraintsInBondingsNics < ActiveRecord::Migration
   def self.up
+    # Mysql 5.* forces foreign key to have an index, for performance reason.
+    # One cannot remove an index before drop foreign key on it.
+    remove_foreign_key :bondings_nics, :name => 'fk_bondings_nics_bonding'
+    remove_foreign_key :bondings_nics, :name => 'fk_bondings_nics_nic'
+
     remove_index :bondings_nics, [:bonding_id, :nic_id]
     add_index :bondings_nics, :nic_id, :unique => true
+
+    # it can be re-added afterwards, without any problem
+    add_foreign_key :bondings_nics, :bondings,
+                    :name => 'fk_bondings_nics_bonding'
+    add_foreign_key :bondings_nics, :nics, :name => 'fk_bondings_nics_nic'
   end
 
   def self.down
@@ -10,4 +20,3 @@ class FixUniquenessConstraintsInBondingsNics < ActiveRecord::Migration
     add_index :bondings_nics, [:bonding_id, :nic_id], :unique => true
   end
 end
-
  </pre>
</blockquote>
I ran into an issue with this migration, #27, when running "rake
db:migrate" against a new "ovirt_development" postgres database,
created via the instructions in config/database.yml<br>
<br>
The error I got was:<br>
<br>
<div class="syntax">
<div class="text" style="font-family: monospace;">
<ol>
  <li class="li1">
    <div class="de1">==  FixUniquenessConstraintsInBondingsNics:
migrating =========================</div>
  </li>
  <li class="li2">
    <div class="de2">-- remove_foreign_key(:bondings_nics,
{:name=>"fk_bondings_nics_bonding"})</div>
  </li>
  <li class="li1">
    <div class="de1">rake aborted!</div>
  </li>
  <li class="li2">
    <div class="de2">An error has occurred, this and all later
migrations canceled:</div>
  </li>
  <li class="li1">
    <div class="de1"> </div>
  </li>
  <li class="li2">
    <div class="de2">PGError: ERROR:  syntax error at or near "FOREIGN"</div>
  </li>
  <li class="li1">
    <div class="de1">LINE 1: ALTER TABLE "bondings_nics" DROP FOREIGN
KEY "fk_bondings_ni...</div>
  </li>
  <li class="li2">
    <div class="de2">                                         ^</div>
  </li>
  <li class="li1">
    <div class="de1">: ALTER TABLE "bondings_nics" DROP FOREIGN KEY
"fk_bondings_nics_bonding"</div>
  </li>
</ol>
<br>
<br>
<br>
</div>
</div>
Rake stops at this point, so I'm not sure if any other migrations are
broken. Does this work when trying it against postgres locally?<br>
<br>
  -Mo<br>
</body>
</html>