Estoy tratando de desinstalar un módulo (el mío) que he instalado a través de Composer usando CLI con este comando:
bin/magento module:uninstall -r [Namespace]_[Module]
Basado en la respuesta proporcionada aquí por @RyanH, he creado el Setup/Uninstall.php
archivo que elimina los datos relacionados con la base de datos del módulo.
Esto funciona perfectamente pero el procedimiento de desinstalación se bloquea.
Incluso dejé el script ejecutándose durante la noche y aún el mismo resultado.
Los archivos de extensión todavía están allí en el vendor
módulo.
No toqué los permisos ni el propietario del archivo.
Lo que va bien:
- se eliminan los datos relacionados con la base de datos
- el nombre del módulo se elimina de la tabla
setup_module
- el nombre del módulo se elimina de
app/etc/config.php
.
Lo que sale mal
- los archivos del módulo todavía están allí en la
vendor
carpeta. - el comando de la consola no termina.
Salida de consola:
Está a punto de eliminar el código y / o las tablas de la base de datos. ¿Está seguro? [Y / N] y
Habilitar el modo de mantenimiento
Está eliminando datos sin una copia de seguridad de la base de datos.
Eliminar datos de [Espacio de nombres] _ [Módulo]
Eliminar [Espacio de nombres] _ [Módulo] del registro del módulo en la base de datos
Eliminar [Espacio de nombres] _ [Módulo] de la lista de módulos en la configuración de implementación
Eliminar el código de la base de códigos de Magento:
Después de esto simplemente se cuelga.
¿Hay alguna forma de finalizar el proceso de desinstalación, o al menos depurarlo?
Respuestas:
La parte del proceso de desinstalación donde las manos se pueden encontrar en
setup/src/Magento/Setup/Model/ModuleUninstaller.php
:Básicamente enumera los paquetes para eliminar y luego ejecuta un
composer remove
comando en esos paquetes a través delib/internal/Magento/Framework/Composer/Remove.php
:Puedes encontrar el
runComposerCommand
método envendor/magento/composer/src/MagentoComposerApplication.php
:Para mí, algo sucede en el camino aquí y esas funciones son donde debe comenzar a depurar.
Tal vez
composer.json
falta el archivo del módulo o tiene un error.fuente
cuando ejecutamos el módulo bin / magento: desinstale Module_Name y luego ejecute el comando de actualización del compositor también en el proceso anterior que no se muestra en cli.
Cuando ejecutamos la actualización del compositor, se requiere el nombre de usuario y la contraseña de su cuenta de mercado de magento. si no lo has hecho, crea:
Para crear claves de autenticación:
Inicie sesión en Magento Marketplace . Si no tiene una cuenta, haga clic en Registrarse.
Haga clic en el nombre de su cuenta en la esquina superior derecha de la página y seleccione Mi perfil.
Haga clic en Teclas de acceso en la pestaña Mercado.
Ejecute este comando desde su directorio raíz de magento
ln -s ~/.composer/auth.json var/composer_home/
, creará un enlace simbólico de su compositor auth.jsonCuando ejecutamos el módulo: desinstale y luego verifique auth.json en la carpeta var de magento o en el directorio raíz de magento.
Funciona para mi.
fuente
Compositor detenido en datos de carga de repo.magento.com
Mi auth.json no era correcto. Esta decisión me ayudó
Cómo usar el nuevo repo.magento.com
fuente