def validate_schema_generation_for_migration(self): """Validate whether the current database schema generation can be migrated. :raises `aiida.common.exceptions.IncompatibleDatabaseSchema`: if database schema generation cannot be migrated """ schema_generation_code = SCHEMA_GENERATION_VALUE schema_generation_database = self.get_schema_generation_database() schema_version_database = self.get_schema_version_database() schema_version_reset = self.get_schema_version_reset( schema_generation_code) schema_generation_reset, aiida_core_version_reset = SCHEMA_GENERATION_RESET[ schema_generation_code] if schema_generation_database != schema_generation_reset: raise exceptions.IncompatibleDatabaseSchema( TEMPLATE_MIGRATE_SCHEMA_GENERATION_INVALID_GENERATION.format( schema_generation_database=schema_generation_database, schema_generation_code=schema_generation_code, schema_generation_reset=schema_generation_reset)) if schema_version_database != schema_version_reset: raise exceptions.IncompatibleDatabaseSchema( TEMPLATE_MIGRATE_SCHEMA_GENERATION_INVALID_VERSION.format( schema_generation_database=schema_generation_database, schema_generation_code=schema_generation_code, schema_version_database=schema_version_database, schema_version_reset=schema_version_reset, aiida_core_version_reset=aiida_core_version_reset))
def validate_schema_version(self, profile): """Validate that the current database schema version is up-to-date with that of the code. :param profile: the profile for which to validate the database schema :raises `aiida.common.exceptions.IncompatibleDatabaseSchema`: if database schema version is not up-to-date """ schema_version_code = self.get_schema_version_code() schema_version_database = self.get_schema_version_database() if schema_version_database != schema_version_code: raise exceptions.IncompatibleDatabaseSchema( TEMPLATE_INVALID_SCHEMA_VERSION.format( schema_version_database=schema_version_database, schema_version_code=schema_version_code, profile_name=profile.name))
def validate_schema_generation(self, profile): """Validate that the current database schema generation is up-to-date with that of the code. :raises `aiida.common.exceptions.IncompatibleDatabaseSchema`: if database schema generation is not up-to-date """ schema_generation_code = SCHEMA_GENERATION_VALUE schema_generation_database = self.get_schema_generation_database() if schema_generation_database != schema_generation_code: raise exceptions.IncompatibleDatabaseSchema( TEMPLATE_INVALID_SCHEMA_GENERATION.format( schema_generation_database=schema_generation_database, schema_generation_code=schema_generation_code, profile_name=profile.name, ))
def validate_schema_version_for_migration(self): """Validate whether the current database schema version can be migrated. .. warning:: this will not validate that the schema generation is correct. :raises `aiida.common.exceptions.IncompatibleDatabaseSchema`: if database schema version cannot be migrated """ schema_version_code = self.get_schema_version_code() schema_version_database = self.get_schema_version_database() if self.is_database_schema_ahead(): # Database is newer than the code so a downgrade would be necessary but this is not supported. raise exceptions.IncompatibleDatabaseSchema( TEMPLATE_MIGRATE_SCHEMA_VERSION_INVALID_VERSION.format( schema_version_database=schema_version_database, schema_version_code=schema_version_code, ))