Vaihdoin äskettäin yhden käyttäjän Fediverse-palvelimeni Misskeystä Firefishiin. Kohtasin ongelman, jota en löytänyt dokumentoituna muualla. Päätin jakaa löytämäni ratkaisun, jos joku muu hyötyisi siitä ja säästäisi aikaansa tulevaisuudessa.

Päätin samalla siirtyä uuteen verkkotunnukseen, joten helpoin tapa oli luoda uusi palvelin ja migratoida käyttäjätili sen sijaan, että vaivautuisin migratoimaan koko Misskey-instanssia.

Koska kyseessä oli yhden käyttäjän instanssi, tili oli myös Misskeyn "root" tili. Misskey ei salli root-tilin siirtämistä, ja jos yrität, saat virheen "root cannot migrate" tai jotain sinne päin.

Ratkaisu

Menin tietokantaan selvittääkseni, mitä voisin tehdä ohittamalla käyttöliittymän, ja kas, löysin isRoot-sarakkeen user-taulusta. En kuitenkaan halunnut jäädä ilman root-tiliä vanhassa instanssissani, joten menin Misskeyn hallintapaneeliin ja loin uuden tilin, yksinkertaisesti nimeltään "root".

Misskey näyttää tallentavan kaikki tunnetut käyttäjät user-tauluun, ei vain varsinaisia paikallia käyttäjätilejä. Paikallisten tilien löytämiseksi voit käyttää seuraavaa kyselyä

misskey=# SELECT id, username, "isRoot" from "user" WHERE host IS NULL;
     id     |  username   | isRoot 
------------+-------------+--------
 98wzsyrur6 | relay.actor | f
 9n1njqolcd | root        | f
 9n342nasd3 | marko       | t

Nyt voit yksinkertaisesti asettaa uuden root-tilin isRoot-sarakkeen arvoksi true ja oman käyttäjätilin arvoksi false. Sen jälkeen migraation pitäisi toimia.

misskey=# BEGIN;
UPDATE "user" SET "isRoot" = true WHERE id = '9n1njqolcd';
UPDATE "user" SET "isRoot" = false WHERE id = '9n342nasd3';
COMMIT;

Kannattaa varmistaa, että muutit vain 2 riviä ennen kuin kommitoit transaktion.

Olettaisin, että tämä ratkaisu toimii myös Misskey forkeissa, mutta en ole testannut.

Jos tästä postauksesta oli sinulle hyötyä, muista jakaa, twiitata, tuutata ja piippailla se haluamassasi sosiaalisen median palvelussa. Jos sinulla on ongelmia tässä prosessissa, voit myös jättää kommentin alapuolelle niin voin yrittää auttaa.