changeset 2037:9388e2888b72

merge beta into default
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 26 Feb 2012 19:31:17 +0200
parents 65e2ecfc433d (current diff) 872d5f0aafe4 (diff)
children dbc82e3362a2
files
diffstat 1 files changed, 19 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/dbmigrate/versions/005_version_1_3_0.py	Sun Feb 26 19:15:30 2012 +0200
+++ b/rhodecode/lib/dbmigrate/versions/005_version_1_3_0.py	Sun Feb 26 19:31:17 2012 +0200
@@ -26,17 +26,24 @@
     tbl = UserRepoToPerm().__table__
     new_cons = UniqueConstraint('user_id', 'repository_id', 'permission_id', table=tbl)
     new_cons.create()
-
+    old_cons = None
     if migrate_engine.name in ['mysql']:
         old_cons = UniqueConstraint('user_id', 'repository_id', table=tbl, name="user_id")
-        old_cons.drop()
     elif migrate_engine.name in ['postgresql']:
         old_cons = UniqueConstraint('user_id', 'repository_id', table=tbl)
-        old_cons.drop()
     else:
         # sqlite doesn't support dropping constraints...
         print """Please manually drop UniqueConstraint('user_id', 'repository_id')"""
 
+    if old_cons:
+        try:
+            old_cons.drop()
+        except Exception, e:
+            # we don't care if this fails really... better to pass migration than
+            # leave this in intermidiate state
+            print 'Failed to remove Unique for user_id, repository_id reason %s' % e
+
+
     #==========================================================================
     # fix uniques of table `user_repo_group_to_perm`
     #==========================================================================
@@ -44,19 +51,26 @@
     tbl = UserRepoGroupToPerm().__table__
     new_cons = UniqueConstraint('group_id', 'permission_id', 'user_id', table=tbl)
     new_cons.create()
+    old_cons = None
 
     # fix uniqueConstraints
     if migrate_engine.name in ['mysql']:
         #mysql is givinig troubles here...
         old_cons = UniqueConstraint('group_id', 'permission_id', table=tbl, name="group_id")
-        old_cons.drop()
     elif migrate_engine.name in ['postgresql']:
         old_cons = UniqueConstraint('group_id', 'permission_id', table=tbl, name='group_to_perm_group_id_permission_id_key')
-        old_cons.drop()
     else:
         # sqlite doesn't support dropping constraints...
         print """Please manually drop UniqueConstraint('group_id', 'permission_id')"""
 
+    if old_cons:
+        try:
+            old_cons.drop()
+        except Exception, e:
+            # we don't care if this fails really... better to pass migration than
+            # leave this in intermidiate state
+            print 'Failed to remove Unique for user_id, repository_id reason %s' % e
+
     return