"""Backfill the namespace_user fields. Revision ID: 3f4fe1194671 Revises: 6f2ecf5afcf Create Date: 2014-09-24 14:29:45.192179 """ # revision identifiers, used by Alembic. revision = '3f4fe1194671' down_revision = '6f2ecf5afcf' from alembic import op import sqlalchemy as sa def upgrade(tables): conn = op.get_bind() user_table_name_escaped = conn.dialect.identifier_preparer.format_table(tables['user']) conn.execute('update repository set namespace_user_id = (select id from {0} where {0}.username = repository.namespace) where namespace_user_id is NULL'.format(user_table_name_escaped)) op.create_index('repository_namespace_user_id_name', 'repository', ['namespace_user_id', 'name'], unique=True) def downgrade(tables): op.drop_constraint('fk_repository_namespace_user_id_user', table_name='repository', type_='foreignkey') op.drop_index('repository_namespace_user_id_name', table_name='repository')