From: Christopher Allan Webber Date: Thu, 7 Aug 2014 21:29:45 +0000 (-0500) Subject: Only add the constraint if we need to. Catch an exception if we don't. X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=e6288a68e1d08538e40bf88ba8bcf3ac242decda;p=mediagoblin.git Only add the constraint if we need to. Catch an exception if we don't. Also, updating the comment about sqlite being crazy :) --- diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index d8a6d1ce..6ca10b57 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -860,8 +860,8 @@ def revert_username_index(db): replace_table_hack(db, user_table, new_user_table) else: - # If the db is not run using SQLite, this process is much simpler... - # ...as usual ;) + # If the db is not run using SQLite, we don't need to do crazy + # table copying. # Remove whichever of the not-used indexes are in place if u'ix_core__users_uploader' in indexes: @@ -872,9 +872,13 @@ def revert_username_index(db): index.drop() db.commit() - # Add the unique constraint - constraint = UniqueConstraint( - 'username', table=user_table) - constraint.create() + try: + # Add the unique constraint + constraint = UniqueConstraint( + 'username', table=user_table) + constraint.create() + except ProgrammingError: + # constraint already exists, no need to add + pass db.commit()