Impossible de migrer vers S3, donc impossible de restaurer à partir de la sauvegarde

OK, j’ai trouvé après avoir plongé en profondeur dans la base de données. Il semble que des restes (71 téléchargements) de l’environnement S3 d’origine, qui n’est plus utilisé depuis longtemps (ou plutôt, dans ce cas, un environnement S3 disponible mais pas principalement utilisé, car il n’était pas rentable).

J’ai fini par faire ceci :

Depuis le serveur d’origine :

  1. ./launcher enter app

  2. sudo -u postgres psql discourse

  3. SELECT url FROM uploads WHERE url NOT LIKE '%ExpectedS3DomainGoesHere%'

    (remplacez ExpectedS3DomainGoesHere par l’URL réelle que vous utilisez pour votre configuration S3)

    Cela vous donnera les URL avec lesquelles travailler, car nous devons faire certaines choses.

  4. Lorsque les URL proviennent d’anciens buckets sur des URL différentes, utilisez le client Amazon S3 (ou le client de votre backend de stockage S3), et :

    a. Synchronisez les buckets aux URL inattendues, si disponibles, vers le stockage local.

    b. Synchronisez les éléments du local vers le nouveau bucket.

  5. discourse remap ANCIENNE-URL-DE-LA-DB NOUVELLE-URL-DE-LA-DB

    Bien qu’il ait été suggéré ici d’utiliser DbHelper.remap, la fonction remap de discourse a bien fonctionné.

  6. Assurez-vous que les données sont migrées.

    rails uploads:migrate_to_s3

  7. Temps de rebâtir !

    rails posts:rebake

  8. Sauvegardez à nouveau le site sur la machine/le serveur d’origine. Téléchargez cette dernière mise à jour.

Depuis le nouveau serveur de destination :

  1. Configurez Discourse comme prévu, copiez app.yml et autres du serveur d’origine vers le nouveau serveur dans /var/discourse/containers/ pour vous assurer que la reconstruction utilise les bons plugins, etc. nécessaires.

    Assurez-vous de commenter toutes les entrées DISCOURSE_BACKUP_LOCATION: s3 dans app.yml, si vous travaillez avec des copies de sauvegarde locales. J’ai eu quelques problèmes avec S3 qui était bizarre avec des fichiers de sauvegarde tronqués, j’ai donc opté pour l’approche locale pour une restauration.

  2. Suivez les étapes dans Restore a backup from the command line pour importer la sauvegarde sur votre serveur et la restaurer. Y compris les étapes de reconstruction.

Cela a été douloureux pour moi à résoudre, mais cela a été résolu une fois que j’ai plongé dans la table des téléchargements de la base de données. MAIS, cela semble avoir fonctionné, donc…

5 « J'aime »