Quote identifiers in migrations
If a user is crazy enough to want to do something like run gertty on top of MySQL, most things work ... except for a few places where bare use of SQL in the migrations bypass identifier quoting. Change-Id: I0145389d645ca647d2e599c79f5266f60dec85f4
This commit is contained in:
parent
7d5b02d9af
commit
d2b83ab25d
@ -15,9 +15,9 @@ import sqlalchemy as sa
|
|||||||
|
|
||||||
|
|
||||||
def upgrade():
|
def upgrade():
|
||||||
op.drop_index('ix_account_name')
|
op.drop_index('ix_account_name', 'account')
|
||||||
op.drop_index('ix_account_username')
|
op.drop_index('ix_account_username', 'account')
|
||||||
op.drop_index('ix_account_email')
|
op.drop_index('ix_account_email', 'account')
|
||||||
op.create_index(op.f('ix_account_name'), 'account', ['name'])
|
op.create_index(op.f('ix_account_name'), 'account', ['name'])
|
||||||
op.create_index(op.f('ix_account_username'), 'account', ['username'])
|
op.create_index(op.f('ix_account_username'), 'account', ['username'])
|
||||||
op.create_index(op.f('ix_account_email'), 'account', ['email'])
|
op.create_index(op.f('ix_account_email'), 'account', ['email'])
|
||||||
|
@ -18,12 +18,12 @@ def upgrade():
|
|||||||
op.add_column('project', sa.Column('updated', sa.DateTime))
|
op.add_column('project', sa.Column('updated', sa.DateTime))
|
||||||
|
|
||||||
conn = op.get_bind()
|
conn = op.get_bind()
|
||||||
res = conn.execute("select key, name from project")
|
res = conn.execute('select "key", name from project')
|
||||||
for (key, name) in res.fetchall():
|
for (key, name) in res.fetchall():
|
||||||
q = sa.text("select max(updated) from change where project_key=:key")
|
q = sa.text("select max(updated) from change where project_key=:key")
|
||||||
res = conn.execute(q, key=key)
|
res = conn.execute(q, key=key)
|
||||||
for (updated,) in res.fetchall():
|
for (updated,) in res.fetchall():
|
||||||
q = sa.text("update project set updated=:updated where key=:key")
|
q = sa.text('update project set updated=:updated where "key"=:key')
|
||||||
conn.execute(q, key=key, updated=updated)
|
conn.execute(q, key=key, updated=updated)
|
||||||
|
|
||||||
op.create_index(op.f('ix_project_updated'), 'project', ['updated'], unique=False)
|
op.create_index(op.f('ix_project_updated'), 'project', ['updated'], unique=False)
|
||||||
|
@ -17,7 +17,7 @@ import sqlalchemy as sa
|
|||||||
def upgrade():
|
def upgrade():
|
||||||
### commands auto generated by Alembic - please adjust! ###
|
### commands auto generated by Alembic - please adjust! ###
|
||||||
op.create_table('project',
|
op.create_table('project',
|
||||||
sa.Column('key', sa.Integer(), nullable=False),
|
sa.Column('key', sa.Integer(), nullable=False, quote=True),
|
||||||
sa.Column('name', sa.String(length=255), nullable=False),
|
sa.Column('name', sa.String(length=255), nullable=False),
|
||||||
sa.Column('subscribed', sa.Boolean(), nullable=True),
|
sa.Column('subscribed', sa.Boolean(), nullable=True),
|
||||||
sa.Column('description', sa.Text(), nullable=False),
|
sa.Column('description', sa.Text(), nullable=False),
|
||||||
@ -26,7 +26,7 @@ def upgrade():
|
|||||||
op.create_index(op.f('ix_project_name'), 'project', ['name'], unique=True)
|
op.create_index(op.f('ix_project_name'), 'project', ['name'], unique=True)
|
||||||
op.create_index(op.f('ix_project_subscribed'), 'project', ['subscribed'], unique=False)
|
op.create_index(op.f('ix_project_subscribed'), 'project', ['subscribed'], unique=False)
|
||||||
op.create_table('change',
|
op.create_table('change',
|
||||||
sa.Column('key', sa.Integer(), nullable=False),
|
sa.Column('key', sa.Integer(), nullable=False, quote=True),
|
||||||
sa.Column('project_key', sa.Integer(), nullable=True),
|
sa.Column('project_key', sa.Integer(), nullable=True),
|
||||||
sa.Column('id', sa.String(length=255), nullable=False),
|
sa.Column('id', sa.String(length=255), nullable=False),
|
||||||
sa.Column('number', sa.Integer(), nullable=False),
|
sa.Column('number', sa.Integer(), nullable=False),
|
||||||
@ -56,7 +56,7 @@ def upgrade():
|
|||||||
op.create_index(op.f('ix_change_topic'), 'change', ['topic'], unique=False)
|
op.create_index(op.f('ix_change_topic'), 'change', ['topic'], unique=False)
|
||||||
op.create_index(op.f('ix_change_updated'), 'change', ['updated'], unique=False)
|
op.create_index(op.f('ix_change_updated'), 'change', ['updated'], unique=False)
|
||||||
op.create_table('approval',
|
op.create_table('approval',
|
||||||
sa.Column('key', sa.Integer(), nullable=False),
|
sa.Column('key', sa.Integer(), nullable=False, quote=True),
|
||||||
sa.Column('change_key', sa.Integer(), nullable=True),
|
sa.Column('change_key', sa.Integer(), nullable=True),
|
||||||
sa.Column('name', sa.String(length=255), nullable=True),
|
sa.Column('name', sa.String(length=255), nullable=True),
|
||||||
sa.Column('category', sa.String(length=255), nullable=False),
|
sa.Column('category', sa.String(length=255), nullable=False),
|
||||||
@ -68,7 +68,7 @@ def upgrade():
|
|||||||
op.create_index(op.f('ix_approval_change_key'), 'approval', ['change_key'], unique=False)
|
op.create_index(op.f('ix_approval_change_key'), 'approval', ['change_key'], unique=False)
|
||||||
op.create_index(op.f('ix_approval_pending'), 'approval', ['pending'], unique=False)
|
op.create_index(op.f('ix_approval_pending'), 'approval', ['pending'], unique=False)
|
||||||
op.create_table('revision',
|
op.create_table('revision',
|
||||||
sa.Column('key', sa.Integer(), nullable=False),
|
sa.Column('key', sa.Integer(), nullable=False, quote=True),
|
||||||
sa.Column('change_key', sa.Integer(), nullable=True),
|
sa.Column('change_key', sa.Integer(), nullable=True),
|
||||||
sa.Column('number', sa.Integer(), nullable=False),
|
sa.Column('number', sa.Integer(), nullable=False),
|
||||||
sa.Column('message', sa.Text(), nullable=False),
|
sa.Column('message', sa.Text(), nullable=False),
|
||||||
@ -80,7 +80,7 @@ def upgrade():
|
|||||||
op.create_index(op.f('ix_revision_change_key'), 'revision', ['change_key'], unique=False)
|
op.create_index(op.f('ix_revision_change_key'), 'revision', ['change_key'], unique=False)
|
||||||
op.create_index(op.f('ix_revision_number'), 'revision', ['number'], unique=False)
|
op.create_index(op.f('ix_revision_number'), 'revision', ['number'], unique=False)
|
||||||
op.create_table('label',
|
op.create_table('label',
|
||||||
sa.Column('key', sa.Integer(), nullable=False),
|
sa.Column('key', sa.Integer(), nullable=False, quote=True),
|
||||||
sa.Column('change_key', sa.Integer(), nullable=True),
|
sa.Column('change_key', sa.Integer(), nullable=True),
|
||||||
sa.Column('category', sa.String(length=255), nullable=False),
|
sa.Column('category', sa.String(length=255), nullable=False),
|
||||||
sa.Column('value', sa.Integer(), nullable=False),
|
sa.Column('value', sa.Integer(), nullable=False),
|
||||||
@ -90,7 +90,7 @@ def upgrade():
|
|||||||
)
|
)
|
||||||
op.create_index(op.f('ix_label_change_key'), 'label', ['change_key'], unique=False)
|
op.create_index(op.f('ix_label_change_key'), 'label', ['change_key'], unique=False)
|
||||||
op.create_table('permitted_label',
|
op.create_table('permitted_label',
|
||||||
sa.Column('key', sa.Integer(), nullable=False),
|
sa.Column('key', sa.Integer(), nullable=False, quote=True),
|
||||||
sa.Column('change_key', sa.Integer(), nullable=True),
|
sa.Column('change_key', sa.Integer(), nullable=True),
|
||||||
sa.Column('category', sa.String(length=255), nullable=False),
|
sa.Column('category', sa.String(length=255), nullable=False),
|
||||||
sa.Column('value', sa.Integer(), nullable=False),
|
sa.Column('value', sa.Integer(), nullable=False),
|
||||||
@ -99,7 +99,7 @@ def upgrade():
|
|||||||
)
|
)
|
||||||
op.create_index(op.f('ix_permitted_label_change_key'), 'permitted_label', ['change_key'], unique=False)
|
op.create_index(op.f('ix_permitted_label_change_key'), 'permitted_label', ['change_key'], unique=False)
|
||||||
op.create_table('comment',
|
op.create_table('comment',
|
||||||
sa.Column('key', sa.Integer(), nullable=False),
|
sa.Column('key', sa.Integer(), nullable=False, quote=True),
|
||||||
sa.Column('revision_key', sa.Integer(), nullable=True),
|
sa.Column('revision_key', sa.Integer(), nullable=True),
|
||||||
sa.Column('id', sa.String(length=255), nullable=True),
|
sa.Column('id', sa.String(length=255), nullable=True),
|
||||||
sa.Column('in_reply_to', sa.String(length=255), nullable=True),
|
sa.Column('in_reply_to', sa.String(length=255), nullable=True),
|
||||||
@ -118,7 +118,7 @@ def upgrade():
|
|||||||
op.create_index(op.f('ix_comment_pending'), 'comment', ['pending'], unique=False)
|
op.create_index(op.f('ix_comment_pending'), 'comment', ['pending'], unique=False)
|
||||||
op.create_index(op.f('ix_comment_revision_key'), 'comment', ['revision_key'], unique=False)
|
op.create_index(op.f('ix_comment_revision_key'), 'comment', ['revision_key'], unique=False)
|
||||||
op.create_table('message',
|
op.create_table('message',
|
||||||
sa.Column('key', sa.Integer(), nullable=False),
|
sa.Column('key', sa.Integer(), nullable=False, quote=True),
|
||||||
sa.Column('revision_key', sa.Integer(), nullable=True),
|
sa.Column('revision_key', sa.Integer(), nullable=True),
|
||||||
sa.Column('id', sa.String(length=255), nullable=True),
|
sa.Column('id', sa.String(length=255), nullable=True),
|
||||||
sa.Column('created', sa.DateTime(), nullable=False),
|
sa.Column('created', sa.DateTime(), nullable=False),
|
||||||
|
@ -25,9 +25,9 @@ def upgrade():
|
|||||||
op.add_column('revision', sa.Column('fetch_ref', sa.String(length=255)))
|
op.add_column('revision', sa.Column('fetch_ref', sa.String(length=255)))
|
||||||
|
|
||||||
conn = op.get_bind()
|
conn = op.get_bind()
|
||||||
res = conn.execute("select r.key, r.number, c.number from revision r, change c where r.change_key=c.key")
|
res = conn.execute('select r.key, r.number, c.number from revision r, "change" c where r.change_key=c.key')
|
||||||
for (rkey, rnumber, cnumber) in res.fetchall():
|
for (rkey, rnumber, cnumber) in res.fetchall():
|
||||||
q = sa.text("update revision set fetch_auth=:auth, fetch_ref=:ref where key=:key")
|
q = sa.text('update revision set fetch_auth=:auth, fetch_ref=:ref where "key"=:key')
|
||||||
ref = 'refs/changes/%s/%s/%s' % (str(cnumber)[-2:], cnumber, rnumber)
|
ref = 'refs/changes/%s/%s/%s' % (str(cnumber)[-2:], cnumber, rnumber)
|
||||||
res = conn.execute(q, key=rkey, ref=ref, auth=False)
|
res = conn.execute(q, key=rkey, ref=ref, auth=False)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user