Cela ressemble à une FAQ et je m’excuse par avance si c’est le cas : il semble que je n’aie pas cherché assez soigneusement Comment pourrais-je écrire un script pour faire la même chose que l’assistant, plutôt que de le faire via l’interface web ?
Mais… peut-être que c’est là que je suis perdu : pour appeler l’API, j’ai besoin d’une clé API. Et donc d’un utilisateur administrateur… que je n’ai pas (encore). Est-il possible d’appeler l’API sans clé API ? Ou d’obtenir une clé API qui serait détachée d’un utilisateur et qui aurait des identifiants d’administrateur ?
Il semble que je doive utiliser rake:admin pour créer l’utilisateur administrateur. En réalité, je pense que l’utilisateur administrateur est déjà créé mais non approuvé, donc je devrais le modifier pour qu’il soit approuvé.
Ou peut-être que je peux créer une clé API avec api_key:create_master et l’utiliser pour créer l’utilisateur administrateur ?
Mais il semble que je ne comprenne pas tout à fait comment cette clé maître doit être utilisée, car cela ne fonctionne pas :
# curl -X GET "https://forum2/categories" -H "Accept: application/json" -H "Api-Key: ad676e7413778aa3a5d315c35f91ef0edb4a4d4b2d644b924b7a88421cfa"
{"errors":["Vous n'êtes pas autorisé à afficher la ressource demandée. Le nom d'utilisateur ou la clé API est invalide."],"error_type":"invalid_access"}
Cependant, si je crée un utilisateur administrateur :
root@forum:/var/www/discourse# RAILS_DB=secondsite rake 'admin:create'
Email: loic@dachary.org
Password:
Repeat password:
Assurance que le compte est actif !
Compte créé avec succès avec le nom d'utilisateur loic
Voulez-vous accorder les privilèges d'administrateur à ce compte ? (Y/n) Y
Votre compte dispose désormais des privilèges d'administrateur !
et que j’utilise ensuite la même clé maître en spécifiant l’utilisateur nouvellement créé, cela fonctionne :
Que cherchez-vous exactement à accomplir ? Voulez-vous automatiser la création d’un utilisateur administrateur et la configuration de certains paramètres ?
Oui, exactement. Je souhaite créer un nouveau forum à partir de zéro et le peupler avec des utilisateurs, des catégories et des sujets, via un script qui ne nécessite aucune interaction avec un navigateur.
Si cela n’était qu’un coup d’essai, ce serait acceptable. Mais je veux pouvoir tester le script d’importation. Et pour que le test s’exécute, il doit d’abord créer un Discourse à partir de zéro, sans nécessiter d’intervention manuelle au milieu du test automatisé
Je gagne une part importante de mes revenus grâce à l’importation. Je suis assez certain que ce que je décris ci-dessous correspond à la méthode utilisée par la plupart de ceux qui pratiquent régulièrement l’importation.
Voici ce que je recommande :
configurer et lancer l’outil d’importation
vérifier qu’il fonctionne comme prévu
créer un script pour relancer l’importation et récupérer les données acquises depuis la première exécution
tester cette procédure
lancer l’importation finale une fois que tout le reste fonctionne
restaurer ces données sur votre serveur de production
La tâche de migration et la configuration d’un serveur de production sont totalement différentes et ont des exigences distinctes. Généralement, la migration nécessite des éléments dont le serveur de production n’a pas besoin (bien que je pense que l’outil d’importation mailmain fasse exception).
Lancer une migration sur un serveur multisite semble particulièrement imprudent.
Merci pour le conseil, je vais suivre cette procédure. Il y a plus de 100 Go d’archives mbox, ce qui nécessitera au moins quelques tests.
À ce sujet… il semble que l’importateur mbox crée toujours une nouvelle catégorie et ne peut pas en utiliser une existante. Auriez-vous des informations à ce sujet ?
Je ne connaissais pas le sens de foolhardy : je l’apprécie et je vais le réutiliser
C’est d’autant plus une raison pour considérer qu’une réimportation complète est une mauvaise idée. Cela risquerait de prendre plusieurs semaines. Lorsque vous relancez l’importateur, il n’importe que les nouvelles données (et je le modifie souvent pour qu’il ignore entièrement les anciennes données).
Vous pouvez probablement modifier le script pour utiliser une catégorie existante en créant un champ personnalisé de catégorie. Je recommande de commencer avec une base de données vide et de laisser le script la créer ; vous pourrez ensuite la personnaliser comme vous le souhaitez. Lors d’une nouvelle exécution du script, il continuera à l’utiliser.
Le vrai danger avec votre importation, c’est qu’il y aura probablement des différences dans les données au fil des années : ce qui fonctionne pour des données vieilles de 10 ans ne fonctionnera pas pour des données de 5 ans, et ainsi de suite. Mais peut-être aurez-vous de la chance.
Je ne sais pas si c’est un compliment
J’utilise toujours le multisite pour les importations. Cela permet à plusieurs forums de coexister : l’un que je modifie pendant que le client peut examiner l’importation sur son voisin. Et il est facile de copier une base de données pour reprendre à partir d’un certain point.
Eh bien, je suis resté sans voix ! Tu es pratiquement la seule personne sur la planète qui ne travaille pas pour CDCK et qui, à mon avis, en sait plus sur les imports que moi. Et si tu utilises le multisite pour les imports, alors, eh bien, je vais envisager de faire de même. En général, je lance des conteneurs séparés sur le même hôte avec Traefik devant, donc je suppose que c’est un peu la même chose, mais pas vraiment.