Desinstalando un plugin en multisitio

Este es un caso bastante extremo, podría ser un error, y tengo curiosidad si hay una buena solución para esto.
@sam Te etiqueto porque si alguien debería saberlo, probablemente seas tú.

Considera una instalación multisitio.

  1. Se añade el Foro A a la instalación multisitio.
  2. Se instala un plugin que modifica la base de datos (por ejemplo, el plugin de chat que añade chat_enabled a user_options).
  3. Se ejecutan las migraciones y se añaden columnas a algunas tablas del foro A.
  4. Se elimina el plugin, las columnas permanecerán.
  5. Se añade el Foro B a la instalación multisitio.
  6. Ahora tenemos el Foro A y el Foro B en una única instalación multisitio con diferentes definiciones de columnas en user_options.
  7. multisite:seed_fu tiene problemas (creo que debido al caché del modelo de ActiveRecord).
#<ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column user_options.chat_enabled does not exist
LINE 1: ...lendar", "user_options"."oldest_search_log_date", "user_opti...
4 Me gusta

Estoy bastante seguro de que también me encontré con este problema cuando intenté agregar un nuevo sitio a un multisitio recientemente. Gracias por articularlo.

1 me gusta

Sí, esto es una pesadilla, tendrás que ejecutar la limpieza manualmente aquí.

Es fundamental tener paridad de esquemas en todas las configuraciones multisitio.