async zip_restore(fnm, tenant) {
    const { restore } = require("@saltcorn/admin-models/models/backup");
    const User = require("@saltcorn/data/models/user");
    const load_plugins = require("@saltcorn/server/load_plugins");
    await maybe_as_tenant(tenant, async () => {
      await load_plugins.loadAllPlugins();
      const hasUsers = await User.nonEmpty();
      const savePlugin = (p) => load_plugins.loadAndSaveNewPlugin(p);
      const err = await restore(fnm, savePlugin, !hasUsers);
      if (err) {
        console.error(err);
        this.exit(1);
      }
    });
  }
@param {string} fnm
@param {object} tenant
@returns {Promise<void>}