quest'n'click 4.5.0 · r1

Construite pour quest'n'click 4.5.0, révision r1. Si elle est publiée, et laquelle est la courante, est dit par publication.json.

Exporter le jeu et quitter l’installation

English · Type : procédure · Public : administrateur · Contexte : Studio hébergé · Statut : prête · S'applique depuis : 4.2.3

Le Studio Server (Studio d'équipe hébergé) · contrat : expérimental · vérifié par la CI (matrice de support de la 4.4.0, 2026-10-23) : Postgres, S3 et Keycloak en CI ; Chromium et Firefox (job studio-hosted) ; WebKit sous macOS, à la main seulement · vérifications automatiques : jobs studio-hosted, studio-install-smoke ; plan de CI studioHosted ; 3 fichiers de tests · passes humaines : studio-hosted pas faite (#149), studio-collab pas faite (#150), studio-preview pas faite (#166), studio-assets-hosted pas faite (#167), studio-mcp-remote pas faite (#196), studio-oidc-generic pas faite (#197) · limites connues : export-is-files

Comment tout sortir d’un Studio hébergé sur Clever Cloud : les fichiers du jeu en un dossier qu’un Studio local ouvre, et le reste du projet (membres, commentaires, histoire) sous une forme que vous gardez. Ensuite, vous pouvez supprimer l’installation.

Ce que vous obtenez

Contexte et versions

Prérequis

Où lancer les commandes

Sur votre machine, dans le dépôt du moteur à la version de l’application studio, avec STUDIO_DATABASE_URL pointé sur un add-on d’exercice, jamais sur celui de la production.

Étapes

  1. Prévenez les membres, et convenez d’une dernière écriture : ce qui est écrit après la sauvegarde de l’étape 2 est dans le journal expédié vers le bucket et revient avec le rejeu, mais personne ne devrait continuer à travailler sur une installation qu’on quitte.
  1. Faites une sauvegarde dans le bucket (npm run -s studio-server -- backup --to-bucket dans clever ssh), puis copiez tout le bucket vers un stockage à vous avec un outil S3 : backups/, sha256/ (les contenus) et journal/. Une sauvegarde sans ses blobs ne restaure rien (Sauvegardes).
  1. Restaurez cette sauvegarde dans un nouvel add-on PostgreSQL vide, en suivant les étapes 2 à 4 de l’exercice de restauration. Vous avez maintenant une copie du projet qui n’est pas la production.
  1. Exportez le jeu à sa tête depuis cette copie, dans un nouveau dossier :

    # sur votre machine, dans le dépôt du moteur, STUDIO_DATABASE_URL et les clés Cellar exportées comme dans l'exercice
    npm run -s studio-server -- export ./my-game-export --config drill.config.json
    

    Il écrit chaque fichier de la tête, vérifie le hash de chacun contre la tête (un écart l’arrête : « the content does not match the head »), et écrit export-manifest.json (game, epoch, revision, files). Sa dernière ligne est {"event":"exported","revision":…,"files":…}. Il refuse un dossier qui n’est pas vide.

  1. Ouvrez le jeu exporté dans un Studio local : copiez le dossier en games/my-game d’un projet créé (ou du dépôt du moteur) et lancez-y son Studio (Vue d’ensemble et lancement).
  1. Si le Studio pousse vers un dépôt Git (git dans sa configuration), un dernier push depuis le Studio donne les mêmes fichiers avec leur histoire en commits (Le jeu dans Git) : gardez aussi ce dépôt.

Limite · export-is-files L’export ne contient que les fichiers du jeu. Membres, invitations, commentaires, journal d’audit, annulation personnelle, prévisualisations, builds publiés et assets préparés n’y sont pas ; ils sont dans le JSON de la sauvegarde (étape 2), qui les garde lisibles mais que seul un Studio Server de la même version restaure.

Résultat attendu, et comment le vérifier

La revision d’export-manifest.json est la tête que vous avez notée (GET /api/revision avant de partir), ses files ont autant d’entrées que le dossier contient de fichiers, et le Studio local ouvre le jeu et le valide.

Erreurs fréquentes

SymptômeCauseCorrection
export: an empty or new folder is requiredLe dossier existe et contient des fichiersUn nouveau dossier
STUDIO_DATABASE_URL (or POSTGRESQL_ADDON_URI) is requiredPas d’URI de base dans le shellExportez l’URI de l’add-on d’exercice
<chemin>: the content does not match the headUn blob du bucket diffère de ce que nomme la têteArrêtez-vous ; vérifiez le bucket et les identifiants Cellar
Le Studio local dit que le jeu ne se charge pasLe jeu importe des fichiers hors de son dossier, ou la version du moteur diffèrePrenez le moteur à la version de l’application studio

Fichiers ou données modifiés

Le dossier d’export et la copie du bucket de votre côté ; un add-on d’exercice chez Clever Cloud (supprimez-le ensuite). La production n’est que lue, pour la sauvegarde.

Reprise ou retour arrière

Rien n’est changé en production. Pour revenir plus tard à un Studio hébergé, restaurez la sauvegarde et la copie du bucket gardées dans une nouvelle installation de la même version (exercice de restauration), ou importez le dossier exporté dans une nouvelle (npm run studio-server -- import, Premier déploiement) : un import commence une nouvelle histoire.

Références


Modifier la source de cette page · Signaler une erreur