Blame alembic/versions/e18d5b78d782_add_ci_job_attribute_to_the_hook_pagure_.py

Clement Verna 5434db
"""Add ci_job attribute to the hook_pagure_ci table
Clement Verna 5434db
Clement Verna 5434db
Revision ID: e18d5b78d782
Clement Verna 5434db
Revises: 22fb5256f555
Clement Verna 5434db
Create Date: 2018-03-16 11:51:04.613420
Clement Verna 5434db
Clement Verna 5434db
"""
Clement Verna 5434db
Clement Verna 5434db
# revision identifiers, used by Alembic.
Clement Verna 5434db
revision = 'e18d5b78d782'
Clement Verna 5434db
down_revision = '22fb5256f555'
Clement Verna 5434db
Clement Verna 5434db
from alembic import op
Clement Verna 5434db
import sqlalchemy as sa
Clement Verna 5434db
Clement Verna 5434db
Clement Verna 5434db
def upgrade():
Clement Verna 5434db
    ''' Add ci_job column to projects table'''
Clement Verna 5434db
    op.add_column(
Clement Verna 5434db
        'hook_pagure_ci',
Clement Verna 5434db
        sa.Column('ci_job', sa.String(255), nullable=True, unique=False)
Clement Verna 5434db
    )
Clement Verna 5434db
Clement Verna a2657d
    con = op.get_bind()
Clement Verna a2657d
    results = con.execute('SELECT id, ci_url FROM hook_pagure_ci')
Clement Verna a2657d
Clement Verna a2657d
    for id, url in results:
Clement Verna a2657d
        ci_job = url.split('/job/', 1)[1].split('/', 1)[0]
Clement Verna a2657d
        ci_url = url.split('/job/')[0]
Clement Verna a2657d
        op.execute(
Clement Verna a2657d
            "UPDATE hook_pagure_ci SET ci_job='{}' WHERE id = '{}'".format(ci_job, id))
Clement Verna a2657d
        op.execute(
Clement Verna a2657d
            "UPDATE hook_pagure_ci SET ci_url='{}' WHERE id = '{}'".format(ci_url, id))
Clement Verna a2657d
Clement Verna a2657d
    op.alter_column(
Clement Verna a2657d
        'hook_pagure_ci', 'ci_job',
Clement Verna a2657d
        nullable=False, existing_nullable=True)
Clement Verna a2657d
Clement Verna 5434db
Clement Verna 5434db
def downgrade():
Clement Verna 5434db
    ''' Revert the ci_job column added'''
Clement Verna a2657d
Clement Verna a2657d
    con = op.get_bind()
Clement Verna a2657d
    results = con.execute('SELECT id, ci_url, ci_job FROM hook_pagure_ci')
Clement Verna a2657d
Clement Verna a2657d
    for id, url, job in results:
Clement Verna a2657d
        ci_url = url + '/job/' + job + '/'
Clement Verna a2657d
        op.execute(
Clement Verna a2657d
            "UPDATE hook_pagure_ci SET ci_url='{}' WHERE id = '{}'".format(ci_url, id))
Clement Verna a2657d
Clement Verna 5434db
    op.drop_column('hook_pagure_ci', 'ci_job')