Do not use strings as attributes for loader
With SQLalchemy 2.0 strings are no longer accepted as attributes for the loader and attributes must be used instead directly. This also fixes DB migrations by removing deprecated subtransactions. Change-Id: I94865b90701e5a51f69187d9e790386e29ad7b5a
This commit is contained in:
parent
c05fe096cd
commit
2681091ffa
@ -92,8 +92,7 @@ def update_existing_records():
|
||||
nullable=True))
|
||||
|
||||
# perform data migration between tables
|
||||
session = sa.orm.Session(bind=op.get_bind())
|
||||
with session.begin(subtransactions=True):
|
||||
with sa.orm.Session(bind=op.get_bind()) as session:
|
||||
for row in session.query(VOLUME_MAPPING_TABLE):
|
||||
res = session.execute(
|
||||
VOLUME_TABLE.insert().values(
|
||||
@ -112,8 +111,8 @@ def update_existing_records():
|
||||
volume_id=res.inserted_primary_key[0]).where(
|
||||
VOLUME_MAPPING_TABLE.c.id == row.id)
|
||||
)
|
||||
# this commit is necessary to allow further operations
|
||||
session.commit()
|
||||
# this commit is necessary to allow further operations
|
||||
session.commit()
|
||||
|
||||
op.alter_column('volume_mapping', 'volume_id',
|
||||
nullable=False,
|
||||
|
@ -43,8 +43,7 @@ TABLE_MODEL = sa.Table(
|
||||
def upgrade():
|
||||
op.alter_column('container', 'command', type_=sa.Text())
|
||||
# Convert 'command' from string to json-encoded list
|
||||
session = sa.orm.Session(bind=op.get_bind())
|
||||
with session.begin(subtransactions=True):
|
||||
with sa.orm.Session(bind=op.get_bind()) as session:
|
||||
for row in session.query(TABLE_MODEL):
|
||||
if row[1]:
|
||||
command = shlex.split(row[1])
|
||||
@ -53,4 +52,4 @@ def upgrade():
|
||||
TABLE_MODEL.update().values(
|
||||
command=command).where(
|
||||
TABLE_MODEL.c.id == row[0]))
|
||||
session.commit()
|
||||
session.commit()
|
||||
|
@ -41,16 +41,15 @@ def upgrade():
|
||||
'compute_node', ['rp_uuid'])
|
||||
|
||||
# perform data migration between tables
|
||||
session = sa.orm.Session(bind=op.get_bind())
|
||||
with session.begin(subtransactions=True):
|
||||
with sa.orm.Session(bind=op.get_bind()) as session:
|
||||
for row in session.query(COMPUTE_NODE_TABLE):
|
||||
session.execute(
|
||||
COMPUTE_NODE_TABLE.update().values(
|
||||
rp_uuid=row.uuid).where(
|
||||
COMPUTE_NODE_TABLE.c.uuid == row.uuid)
|
||||
)
|
||||
# this commit is necessary to allow further operations
|
||||
session.commit()
|
||||
# this commit is necessary to allow further operations
|
||||
session.commit()
|
||||
|
||||
op.alter_column('compute_node', 'rp_uuid',
|
||||
nullable=False,
|
||||
|
@ -760,7 +760,8 @@ class Connection(object):
|
||||
query = model_query(models.Inventory, session=session)
|
||||
query = self._add_inventories_filters(query, filters)
|
||||
query = query.join(models.Inventory.resource_provider)
|
||||
query = query.options(contains_eager('resource_provider'))
|
||||
query = query.options(
|
||||
contains_eager(models.Inventory.resource_provider))
|
||||
return _paginate_query(models.Inventory, limit, marker,
|
||||
sort_key, sort_dir, query)
|
||||
|
||||
@ -783,7 +784,8 @@ class Connection(object):
|
||||
session = get_session()
|
||||
query = model_query(models.Inventory, session=session)
|
||||
query = query.join(models.Inventory.resource_provider)
|
||||
query = query.options(contains_eager('resource_provider'))
|
||||
query = query.options(
|
||||
contains_eager(models.Inventory.resource_provider))
|
||||
query = query.filter_by(id=inventory_id)
|
||||
try:
|
||||
return query.one()
|
||||
@ -825,7 +827,8 @@ class Connection(object):
|
||||
query = model_query(models.Allocation, session=session)
|
||||
query = self._add_allocations_filters(query, filters)
|
||||
query = query.join(models.Allocation.resource_provider)
|
||||
query = query.options(contains_eager('resource_provider'))
|
||||
query = query.options(
|
||||
contains_eager(models.Allocation.resource_provider))
|
||||
return _paginate_query(models.Allocation, limit, marker,
|
||||
sort_key, sort_dir, query)
|
||||
|
||||
@ -846,7 +849,8 @@ class Connection(object):
|
||||
with session.begin():
|
||||
query = model_query(models.Allocation, session=session)
|
||||
query = query.join(models.Allocation.resource_provider)
|
||||
query = query.options(contains_eager('resource_provider'))
|
||||
query = query.options(
|
||||
contains_eager(models.Allocation.resource_provider))
|
||||
query = query.filter_by(id=allocation_id)
|
||||
try:
|
||||
return query.one()
|
||||
|
Loading…
Reference in New Issue
Block a user