Strumento per la pulizia del database?

Discourse ha uno strumento Database Cleaner?

Questo strumento rimuoverebbe tutti i dati di configurazione aggiuntivi dal database. Lo strumento rimuoverebbe tutte le colonne aggiunte, le righe di configurazione e le tabelle dal database che non sono presenti nell’installazione predefinita di Discourse. Lo strumento lascerebbe invariato tutto il contenuto e le impostazioni del sito. L’obiettivo principale sarebbe rimuovere tutti i componenti di plugin e temi dal database.

La migliore soluzione a cui riesco a pensare è creare una nuova istanza da un backup :slight_smile:

Questo è il modo più pulito per ottenerlo mantenendo i dati del tuo forum senza un grande sforzo manuale.

Tuttavia, credo che i backup includeranno tutte le tabelle che esistevano nell’istanza da cui hai eseguito il backup e che potrebbero includere quelle create dai plugin, anche se non hai installato il plugin sulla nuova istanza.

Se vuoi sporcarti le mani, puoi usare i rake tasks per eliminare un database e crearne uno nuovo ed eseguire tutte le migrazioni, ma questo cancellerà tutti i tuoi dati.

Questo è il motivo per cui “installare un nuovo ambiente e ripristinare un backup” non è la soluzione migliore. Hai ancora residui di vecchi componenti e plugin nel database.

Dovrebbe esserci uno strumento di ultima istanza che rimuova tutte le modifiche apportate al database da componenti e plugin, lasciando invariati i dati e le impostazioni del sito. Questo strumento potrebbe essere eseguito prima di passare alla nuova soluzione di installazione.

Sospetto che sarà difficile da realizzare:

  1. alcune migrazioni sono irreversibili
  2. molte migrazioni sono memorizzate all’interno di plugin che non ci saranno se non sono installati, quindi non c’è nulla da invertire.

Ma prova a realizzarlo e vedi se riesci a superare questi problemi.

1 Mi Piace

Quindi in pratica non abbiamo alcuno strumento per spostare solo contenuti umani, comprese categorie e tag?

Stai usando il termine “migrations”. Cosa intendi con questo termine?

Uso il termine per riferirmi alla “migrazione” dei dati e dei contenuti degli utenti in un sistema. Questo non dovrebbe mai modificare la struttura predefinita del database.

L’unica cosa che potrebbe modificare la struttura di un database è un plugin. A meno che Discourse non consenta altri modi per modificare la struttura del database.

1 Mi Piace

Si trovano nella cartella /db/migrations di Discourse e in ogni plugin (che le utilizza)

1 Mi Piace