Coverage for mindsdb / migrations / versions / 2022-11-07_1e60096fc817_predictor_version.py: 29%
27 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
1"""predictor_version
3Revision ID: 1e60096fc817
4Revises: 43c52d23845a
5Create Date: 2022-11-07 16:43:47.301692
7"""
8from alembic import op
9import sqlalchemy as sa
10from sqlalchemy.sql import text
13# revision identifiers, used by Alembic.
14revision = '1e60096fc817'
15down_revision = '43c52d23845a'
16branch_labels = None
17depends_on = None
20def upgrade():
21 # ### commands auto generated by Alembic - please adjust! ###
22 with op.batch_alter_table('predictor', schema=None) as batch_op:
23 batch_op.add_column(sa.Column('label', sa.String(), nullable=True))
24 batch_op.add_column(sa.Column('version', sa.Integer(), nullable=True))
26 # update current predictor versions
27 conn = op.get_bind()
28 session = sa.orm.Session(bind=conn)
30 key0 = (None, None, None)
31 models = conn.execute(sa.text('''
32 select company_id, project_id, name, id
33 from predictor
34 order by company_id, project_id, name, created_at
35 ''')).fetchall()
36 for model in models:
37 key = (model['company_id'], model['project_id'], model['name'].lower())
39 # it is different name or project or company
40 if key != key0:
41 version = 1
42 key0 = key
44 conn.execute(
45 text("""
46 update predictor
47 set version = :version
48 where id = :id
49 """), {
50 'version': version,
51 'id': model['id']
52 }
53 )
54 version += 1
56 session.commit()
57 # ### end Alembic commands ###
60def downgrade():
61 # ### commands auto generated by Alembic - please adjust! ###
62 with op.batch_alter_table('predictor', schema=None) as batch_op:
63 batch_op.drop_column('version')
64 batch_op.drop_column('label')
66 # ### end Alembic commands ###