Migrating (pads &co) from CodiMD to HedgeDoc

Being mistaken by the confusing name history of both CodiMD and HedgeDoc (the former CodiMD is now HedgeDoc, and HackMD has an open source version which is now CodiMD), I installed CodiMD, not HedgeDoc.

I want to convert my installation, not to export and import the pad (I want to keep the history, and if possible pad URL).

Is that possible ?
How ?

Is there for instance a way to export CodiMD database, install HedgeDoc, and then import that database ?
Something to configure next ?

Thanks for your help :slight_smile:

I found this, but it’s not complete enough :sweat_smile:

I tried the brutal way : force upgrading codimd(_ynh) to hedgedoc(_ynh).

It works… but app is not working after that, codimd service doesn’t start properly.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.

J’ai trouvé comment faire !

Depuis codimd 2.4.2, vers hedgedoc 1.9.6~ynh2.

Objectif : migrer en conservant la totalité des liens des pad intact. L’historique des pad n’était pas important (j’aurai pu export-importer) mais ça sera conservé aussi.

Les Ă©tapes

  • CrĂ©er une sauvegarde de codimd.
  • La tĂ©lĂ©charger. C’est possible via l’interface web.
  • DĂ©sintaller CodiMD.
  • Installer HedgeDoc sur le mĂŞme nom de domaine et sur le mĂŞme chemin (pour Ă©viter de devoir changer cela plus tard)
  • CrĂ©er une sauvegarde de HedgeDoc.
  • DĂ©sintaller HedgeDoc.
  • Extraire le fichier apps/codimd/backup/db.sql de la sauvegarde de CodiMD (c’est l’export de la base de donnĂ©es).
  • L’utiliser pour remplacer le fichier apps/hedgedoc/backup/db.sql de la sauvegarde de HedgeDoc (“import” de la base de donnĂ©es).
  • recompresser l’archive de la sauvegarde d’HedgeDoc en .tar avec comme nom celui de la sauvegarde d’origine. Attention : l’archive doit conteni apps, backup.csv et info.json Ă  sa racine, pas dans un sous-dossier (ne crĂ©ez pas une archive tar du dossier qui contient tout ça).
  • tĂ©lĂ©verser votre sauvegarde modifiĂ©e sur le serveur (via FileZilla, scp, un montage dans votre gestionnaire de fichier…) dans le dossier des sauvegardes `/home/yunohost.backup/archive)
  • restorer l’archive de sauvegarde d’HedgeDoc. Ceci devrait bien fonctionner mais ne suffit pas, une migration Ă©choue car la base de donnĂ©e est mal configurĂ©e.
  • On Ă©teint hedgedoc pour Ă©viter les problèmes de conflits : service hedgedoc stop
  • Connection Ă  la base de donnĂ©e PostgreSQL en ayant les droits de modifier toutes les BDD : sudo -u postgres psql
  • On sĂ©lectionne la BDD de HedgeDoc \c hedgedoc
  • (Optionnel) on affiche les tables disponibles et leurs droits \dt. Normalement plusieurs tables sont Ă  l’utilisateur “postgres” et pas Ă  hedgedoc.
  • On dit que toutes les tables sont Ă  hedgedoc.
SELECT format('ALTER TABLE public.%I OWNER TO hedgedoc',table_name)
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_type = 'BASE TABLE' \gexec
  • (Optionnel) on vĂ©rifie avec \dt
  • On corrige la migration qui a Ă©chouĂ© (cf. Migration Troubleshooting - HedgeDoc) : INSERT INTO "SequelizeMeta" (name) VALUES ('20180306150303-fix-enum.js');. Plein d’opĂ©ration sont lancĂ©es, elles doivent fonctionner.
  • On dĂ©marre hedgedoc : service hedgedoc start
  • On vĂ©rifie que tout va bien (attendez quelques secondes, ce n’est pas toujours Ă  jour): service hedgedoc status. Il doit parler d’une migration.
  • C’est bon :rocket:
1 Like