Source code for aiida.backends.sqlalchemy.migrations.versions.7ca08c391c49_calc_job_option_attribute_keys

# -*- coding: utf-8 -*-
###########################################################################
# Copyright (c), The AiiDA team. All rights reserved.                     #
# This file is part of the AiiDA code.                                    #
#                                                                         #
# The code is hosted on GitHub at https://github.com/aiidateam/aiida-core #
# For further information on the license, see the LICENSE.txt file        #
# For further information please visit http://www.aiida.net               #
###########################################################################
# pylint: disable=invalid-name,no-member
"""Migration of ProcessNode attributes for metadata options whose key changed.

Revision ID: 7ca08c391c49
Revises: e72ad251bcdb
Create Date: 2019-01-15 15:03:43.876133

"""

# Remove when https://github.com/PyCQA/pylint/issues/1931 is fixed
# pylint: disable=no-name-in-module,import-error
from alembic import op
from sqlalchemy.sql import text

# revision identifiers, used by Alembic.
revision = '7ca08c391c49'
down_revision = 'e72ad251bcdb'
branch_labels = None
depends_on = None


[docs]def upgrade(): """Migration of ProcessNode attributes for metadata options whose key changed. Renamed attribute keys: * `custom_environment_variables` -> `environment_variables` (CalcJobNode) * `jobresource_params` -> `resources` (CalcJobNode) * `_process_label` -> `process_label` (ProcessNode) * `parser` -> `parser_name` (CalcJobNode) Deleted attributes: * `linkname_retrieved` (We do not actually delete it just in case some relies on it) """ conn = op.get_bind() statement = text( """ UPDATE db_dbnode SET attributes = jsonb_set(attributes, '{environment_variables}', attributes->'custom_environment_variables') WHERE attributes ? 'custom_environment_variables' AND type = 'node.process.calculation.calcjob.CalcJobNode.'; UPDATE db_dbnode SET attributes = attributes - 'custom_environment_variables' WHERE attributes ? 'custom_environment_variables' AND type = 'node.process.calculation.calcjob.CalcJobNode.'; -- custom_environment_variables -> environment_variables UPDATE db_dbnode SET attributes = jsonb_set(attributes, '{resources}', attributes->'jobresource_params') WHERE attributes ? 'jobresource_params' AND type = 'node.process.calculation.calcjob.CalcJobNode.'; UPDATE db_dbnode SET attributes = attributes - 'jobresource_params' WHERE attributes ? 'jobresource_params' AND type = 'node.process.calculation.calcjob.CalcJobNode.'; -- jobresource_params -> resources UPDATE db_dbnode SET attributes = jsonb_set(attributes, '{process_label}', attributes->'_process_label') WHERE attributes ? '_process_label' AND type like 'node.process.%'; UPDATE db_dbnode SET attributes = attributes - '_process_label' WHERE attributes ? '_process_label' AND type like 'node.process.%'; -- _process_label -> process_label UPDATE db_dbnode SET attributes = jsonb_set(attributes, '{parser_name}', attributes->'parser') WHERE attributes ? 'parser' AND type = 'node.process.calculation.calcjob.CalcJobNode.'; UPDATE db_dbnode SET attributes = attributes - 'parser' WHERE attributes ? 'parser' AND type = 'node.process.calculation.calcjob.CalcJobNode.'; -- parser -> parser_name """ ) conn.execute(statement)
[docs]def downgrade(): pass