<!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>