Merge remote-tracking branch 'refs/remotes/tilly-q/ticket-874' into mergetest
authorChristopher Allan Webber <cwebber@dustycloud.org>
Tue, 10 Jun 2014 21:48:45 +0000 (16:48 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Tue, 10 Jun 2014 21:48:45 +0000 (16:48 -0500)
Conflicts:
mediagoblin/db/migrations.py

1  2 
mediagoblin/db/migrations.py
mediagoblin/db/models.py

index dd69ad6e4f39e33b0f82210ff840690f189955af,17f8bef47fc40d83b76eb1a31904b5b10a8df0bd..c94fbda04ee92a50cec81b8fbd34f1ccba18596a
@@@ -708,6 -707,6 +708,7 @@@ def create_moderation_tables(db)
          is_admin.drop()
  
      db.commit()
++
  @RegisterMigration(19, MIGRATIONS)
  def drop_MediaEntry_collected(db):
      """
  
      db.commit()
  
 -@RegisterMigration(20, MIGRATIONS)
++
 +@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(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()
Simple merge