| """Add namespace to project |
| |
| Revision ID: 350efb3f6baf |
| Revises: 1640c7d75e5f |
| Create Date: 2016-08-30 22:02:07.645138 |
| |
| """ |
| |
| |
| revision = '350efb3f6baf' |
| down_revision = '1640c7d75e5f' |
| |
| from alembic import op |
| import sqlalchemy as sa |
| |
| try: |
| from pagure.lib import model |
| except ImportError: |
| import sys |
| sys.path.insert(0, '.') |
| from pagure.lib import model |
| |
| |
| def upgrade(): |
| ''' Add the column namespace to the table projects. |
| ''' |
| op.add_column( |
| 'projects', |
| sa.Column('namespace', sa.String(255), nullable=True, index=True) |
| ) |
| |
| |
| engine = op.get_bind() |
| Session = sa.orm.scoped_session(sa.orm.sessionmaker()) |
| Session.configure(bind=engine) |
| session = Session() |
| for project in session.query(model.Project).filter( |
| model.Project.name.ilike('%/%')).all(): |
| nspace, name = project.name.split('/', 1) |
| project.name = name |
| project.namespace = nspace |
| session.add(project) |
| session.commit() |
| |
| |
| def downgrade(): |
| ''' Remove the column namespace from the table projects. |
| ''' |
| |
| engine = op.get_bind() |
| Session = sa.orm.scoped_session(sa.orm.sessionmaker()) |
| Session.configure(bind=engine) |
| session = Session() |
| for project in session.query(model.Project).filter( |
| model.Project.namespace != None).all(): |
| if project.namespace.strip(): |
| project.name = '%s/%s' % (project.namespace, project.name) |
| session.add(project) |
| session.commit() |
| |
| op.drop_column('projects', 'namespace') |