Пример #1
0
    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))
Пример #2
0
    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))
Пример #3
0
    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,
                ))
Пример #4
0
    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,
                ))