Xavier Gil Estarellas
Web / ES
PSF
06 Octubre 2018, 15:00 - 15:25
Multitenant, el infierno de las migraciones.
En txerpa.com llevamos alrededor de 4 años usando django tenants schemas para ofrecer un producto multitenant. Hace algo menos de dos años nos encontramos con un problema grave, las migraciones tardaban mucho más de lo que era aceptable para nosotros, estábamos afrontando un cambio importante en la estructura de datos y teníamos más de 3000 schemas en los que aplicar los cambios.
Entonces decidimos aportar nuestro granito de arena al proyecto y adaptamos la gestión de migraciones para que se pueda hacerse en paralelo. Este cambio nos permitió reducir el tiempo de las migraciones a menos de una tercera parte. No obstante el procesos sigue siendo demasiado lento para ciertas migraciones y sobretodo obliga a parar el servicio entero mientras se están realizando y en estos momentos estamos desarrollando una nueva mejora para la gestión de las migraciones, que permita usar celery en lugar de hilos, permitiendo un mayor nivel de concurrencia y mayor control a la hora de realizar migraciones.
Mi propuesta es hablar de como gestionar el proceso de migraciones cuando tenemos que trabajar con miles de esquemas en Django tenant esquemas, a partir de nuestra experiencia y de las soluciones que hemos implantado.