TransWikia.com

¿Cómo integro en Django un repositorio automáticamente, vía submódulo u otro paquete?

Stack Overflow en español Asked on December 7, 2021

Tengo un proyecto en Django que ha crecido bastante y está en Git. En concreto, hay una parte del proyecto, un adaptador, que requiere releases constantes, mientras que el resto del código es bastante estable.

Realizar releases cada vez de todo el repositorio implica diferentes cosas que son un poco tediosas: si bien lo tengo automatizado, implica reiniciar servicios y diferentes temas.

Por ello, me estoy planteando separar el adaptador en un nuevo repositorio. Mirando opciones, veo que tanto puedo empaquetar el adaptador e importarlo como otro módulo o bien utilizar un submódulo. Tras comparar opciones, estoy bastante decidido a utilizar la segunda opción, la de submódulos.

Entonces ahora me encontraría en esta situación: repositorio A con el submódulo B. Cuando hago una release del submódulo B, me encuentro con que debo ir al repositorio A y hacer git submodule update --recursive --remote para que se actualice el contenido… y luego hacer todo el reinicio de servicios, etc. Es decir, lo que quería evitar.

¿Existe alguna opción de que un módulo utilice automáticamente la última versión de un submódulo o de un repositorio distinto? O, efectivamente, ¿siempre habrá que ir actualizando desde el módulo? ¿Existe alguna otra opción para esta situación?

One Answer

Si bien es cierto que un microservicio podría solucionar el problema, ya que se reinicia el microservicio y el server no necesita ser reiniciado, no sé qué implica para tu código y qué tanto debas modificar.

Otra opción es que puedes recargar un modulo despues de haber sido importado usando la función reload de la librería importlib implementada en python 3.4

from importlib import reload  
import submodule

submodule = reload(submodule)

Solo deberías ejecutar la línea submodule = reload(submodule) en el momento que necesites recargar tu modulo.

Tomando en cuenta que es Django el servidor de Django se actualiza cada vez que algo cambia, así que no sé si aplique para este caso.

Answered by Jhoubert Rincon on December 7, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP