Mercurial > kallithea
changeset 2036:872d5f0aafe4 beta
don't crash whole migrations if we cannot drop constraints. Those aren't so important. It might happen
than older versions of rhodecode don't have those.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 26 Feb 2012 19:30:47 +0200 |
parents | 3816bf3d0a5b |
children | 9388e2888b72 b64b809a3cae |
files | rhodecode/lib/dbmigrate/versions/005_version_1_3_0.py |
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:05:04 2012 +0200 +++ b/rhodecode/lib/dbmigrate/versions/005_version_1_3_0.py Sun Feb 26 19:30:47 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