From: Christopher Allan Webber Date: Tue, 10 Jun 2014 21:48:45 +0000 (-0500) Subject: Merge remote-tracking branch 'refs/remotes/tilly-q/ticket-874' into mergetest X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=70bceff85fd678a7b6653b2bf377b075ebd11590;p=mediagoblin.git Merge remote-tracking branch 'refs/remotes/tilly-q/ticket-874' into mergetest Conflicts: mediagoblin/db/migrations.py --- 70bceff85fd678a7b6653b2bf377b075ebd11590 diff --cc mediagoblin/db/migrations.py index dd69ad6e,17f8bef4..c94fbda0 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@@ -708,6 -707,6 +708,7 @@@ def create_moderation_tables(db) is_admin.drop() db.commit() ++ @RegisterMigration(19, MIGRATIONS) def drop_MediaEntry_collected(db): """ @@@ -722,14 -721,44 +723,59 @@@ db.commit() ++ +@RegisterMigration(20, MIGRATIONS) +def add_metadata_column(db): + metadata = MetaData(bind=db.bind) + + media_entry = inspect_table(metadata, 'core__media_entries') + + col = Column('media_metadata', MutationDict.as_mutable(JSONEncoded), + default=MutationDict()) + col.create(media_entry) + + db.commit() ++ ++ + class PrivilegeUserAssociation_R1(declarative_base()): + __tablename__ = 'rename__privileges_users' + user_id = Column( + Integer, + ForeignKey(User.id), + primary_key=True) + privilege_id = Column( + Integer, + ForeignKey(Privilege.id), + primary_key=True) + -@RegisterMigration(20, MIGRATIONS) ++ ++@RegisterMigration(21, MIGRATIONS) + def fix_privilege_user_association_table(db): + """ + There was an error in the PrivilegeUserAssociation table that allowed for a + dangerous sql error. We need to the change the name of the columns to be + unique, and properly referenced. + """ + metadata = MetaData(bind=db.bind) + + privilege_user_assoc = inspect_table( + metadata, 'core__privileges_users') + PrivilegeUserAssociation_R1.__table__.create(db.bind) + db.commit() + + new_privilege_user_assoc = inspect_table( + metadata, 'rename__privileges_users') + result = db.execute(privilege_user_assoc.select()) + for row in result: + # The columns were improperly named before, so we switch the columns + user_id, priv_id = row['core__privilege_id'], row['core__user_id'] + db.execute(new_privilege_user_assoc.insert().values( + user_id=user_id, + privilege_id=priv_id)) + + db.commit() + + privilege_user_assoc.drop() + new_privilege_user_assoc.rename('core__privileges_users') + + db.commit()