def METHOD_NAME(self, *args):
    rc = 1
    # Parse the command line arguments.
    parser = argparse.ArgumentParser(
        prog="%s %s" % (os.path.basename(args[0]), args[1]),
        description=self.description,
    )
    parser.add_argument(
        "id",
        type=self.argparse_is_datamodel_id,
        help="The data model ID, e.g. 'conf.service.ssh'",
    )
    parser.add_argument("version", type=self.argparse_is_version)
    cmd_args = parser.parse_args(args[2:])
    # Get the migrations.
    migrations = {}
    migrations_dir = openmediavault.getenv(
        "OMV_CONFDB_MIGRATIONS_DIR",
        "/usr/share/openmediavault/confdb/migrations.d",
    )
    # Collect the migrations to be executed.
    for name in os.listdir(migrations_dir):
        # Split the script name into its parts:
        # <DATAMODELID>_<VERSION>.<EXT>
        parts = re.split(r'_', os.path.splitext(name)[0])
        if 2 != len(parts):
            continue
        if cmd_args.id != parts[0]:
            continue
        if LooseVersion(parts[1]) < LooseVersion(cmd_args.version):
            continue
        migrations[parts[1]] = name
    try:
        # Create a backup of the configuration database.
        self.create_backup()
        # Execute the configuration database migration scripts.
        for cmd_args.version in sorted(
            migrations, key=lambda v: LooseVersion(v)
        ):
            name = "%s_%s" % (cmd_args.id, cmd_args.version)
            path = os.path.join(
                migrations_dir, migrations[cmd_args.version]
            )
            # Test if the script is executable.
            if not os.access(path, os.X_OK):
                raise RuntimeError(
                    "The script '%s' is not executable" % path
                )
            # Execute the script.
            print("  Running migration %s" % name)
            openmediavault.procutils.check_call([path])
        rc = 0
    except Exception as e:
        # Display the exception message.
        openmediavault.log.error("Failed to apply migrations: %s", str(e))
        # Rollback all changes.
        self.rollback_changes()
    finally:
        # Unlink the configuration database backup.
        self.unlink_backup()
    return rc