D8 Composer - pierregermain/MyDrupal GitHub Wiki
- Get Composer
- To install new module
- To disable module
- To enable/disable modules
- Updating
- Patching Core (con ficheros de drupal.org)
- Patching Core (con ficheros realizados por mi o otras personas, en local)
- Notes about Update Drupal core 8.7 to 8.8
- Manual para hacer el update desde 8.7 a 8.8
- Pro Tipps
- Composer templates
Get Composer
-
Install composer
- It's important to put composer in a
bin
folder - It's important to be able to execute composer using
composer
instead ofcomposer.phar
-
Install drupal
To install drupal in
~/webapps/some-dir
we docd webapps/some-dir; composer show drupal/recommended-project --all composer create-project drupal/recommended-project .
Have a look if you need to
sudo apt-get install
some dependencies. And do not forget to restart the serviceapache2
To install new module
composer require vendor/package:<package-version>
Ex. composer require drupal/juicerio:1.x-dev
To disable module
composer remove vender/package
To enable/disable modules
composer install
Updating
Do have handy the git tipps https://github.com/pierregermain/MyTux/wiki/git
https://www.drupal.org/docs/8/update/update-modules
Get the latest files and code from PROD
composer outdated "drupal/*"
composer update --dry-run
composer update
drush updb
drush cr
drush cex
To update core
https://www.drupal.org/docs/8/update/update-core-via-composer
Patching Core (con ficheros de drupal.org)
Primero instalar:
composer require cweagans/composer-patches
Y ahora en la parte de "extra" añadir lo siguiente (sin añadir la parte de "extra" de este ejemplo, sólo se añade lo de enable-patching y patches)
"extra": {
"enable-patching": true,
"patches": {
"drupal/core": {
"<patch1 information>": "<patch1 file path>",
"<patch2 information>": "<patch2 file path>"
}
}
}
Y finalmente para que nos quite "core" y le aplique el parche hay que hacer lo siguiente:
composer install
Patching Core (con ficheros realizados por mi o otras personas, en local)
https://groups.drupal.org/node/518975
Patching without git utilities: https://www.shellhacks.com/create-patch-diff-command-linux/
diff -u OriginalFile UpdatedFile > PatchFile
patch OriginalFile < PatchFile # or patch -p1
Para revertir parche
patch -R OriginalFile < PatchFile
Para añadir al composer
(...)
"drupal/imce": {
"Select searched item": "./web/patches/imce.patch"
},
(...)
Notes about Update Drupal core 8.7 to 8.8
https://www.drupal.org/project/drupal/issues/3100173#comment-13388195
https://www.palantir.net/blog/guide-drupal-8-8-update
https://www.drupal.org/docs/develop/using-composer/using-drupals-composer-scaffold
Ojo si no estas usando una distro de drupal correcta (mirar comentario #2 y #3) https://www.drupal.org/project/drupal/issues/3049055
Manual para hacer el update desde 8.7 a 8.8
Manera de actualizar drupal de la forma más segura posible cuando no es posible hacerlo de forma automática por no usar drupal/core-recommended
-
Instalar Drupal con composer a la versión que quereamos (8.8 en nuestro caso): Comando sacado de: https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies
Correr dicho comando en una nueva carpeta y crear un nuevo virtualhost
composer create-project drupal/recommended-project drupal-8.8
Instalar la DB de Drupal con la UI: usa una DB nueva por ahora.
-
Inicializar el proyecto con git hacia una nueva rama
git init
git add --all
git commit -m "Install drupal 8.8"
git remote add origin <url-del-proyecto>
git remote -v
git checkout -b drupal8_8
git push origin drupal8_8
-
Hacer backup de la db
-
Hacer
composer require
de TODOS los módulos y themes usados -
Alternativamente meter los require en el composer.json y ejecuta composer update
-
Copiar módulos custom hacia el nuevo proyecto
-
Copiar themes custom hacia el nuevo proyecto
-
Copiar files al nuevo proyecto
-
Crear y configura carpeta de configuraciones config/sync (desde el settings.php)
-
Configurar el settings.php para que use la DB antigua
-
drush cr
-
chmod u+w sites/default
-
drush updb
-
Hacer Testing
-
Activar módulos que se tuvieron que desactivarse para el update (en el caso de pathauto hay que borrar sus configs y volver a regenerarlas despues)
Pro Tipps
If something fails do one of the following:
- have a look at your composer.json file
- Maybe core is in "replace" so it is defined as a polyfill and won't update
- delete vendor folders
Composer templates
https://github.com/drupal/legacy-project
https://github.com/drupal/recommended-project
Install Drupal using drupal recommended project
composer show drupal/recommended-project --all
composer create-project drupal/recommended-project:8.9.0 drupal-8.9
More about versions: https://getcomposer.org/doc/articles/versions.md
https://drushcommands.com/drush-9x/site/site:install/
Example
composer create-project drupal/recommended-project:8.9.9 folder_name
drush si standard --db-url=mysql://user:pass@host:port/db_name --locale=es