ddev : commandes fréquentes

https://docs.docker.com/engine/reference/commandline/

Vers Test de ddev,

commandes de base

https://ddev.readthedocs.io/en/latest/users/cli-usage/#getting-started

ddev config : à faire que lors install (quand on est dans son "dossier-projet") + tente de créer db *
Crée (sur l'hote) :  dossier-projet-courrant/.ddev/config.yaml (ports...)

* Diverses règles, qui font que ddev a tendance à "prendre la main" (voire recréer) sur les settings.php et settings.local.php :

  • Si settings.php n'existe pas, le créer.
  • S'il y a un settings.php géré par DDEV, le re-créer.
  • S'il y a un settings.php et qu'il n'est pas géré par DDEV, alors ddev config crée un settings.local.php => penser à modifier le settings.php (y activer le settings.local.php)
  • S'il y a un settings.local.php géré par DDEV manages, le recréer.
  • S'il y a un settings.local.php non géré par ddev, avertir l'utilisateur et continuer.

 

ddev start
accès ssh (on arrive dans /var/www/html) : ddev ssh

voir logs  : ddev logs   (ou ddev logs -f  et ctrl+c)
ddev ssh cat /var/log/php-fpm.log

ddev list : projets en cours
ddev describe : affiche user/pw et liens d'administration + ports

coté db

Ddev crée une machine db, une base db avec le user configuré (db/db) pour le drupal, et le settings.php qui va avec (protégé en écriture). Par défaut, le user de mysql est root/root. Le port change à chaque restart, donc faire un describe pour le trouver (suivi de   mysql --host=127.0.0.1 --port=port --user=root --password=root).

L'import prend divers formats (.sql, sql.gz, tar, tar.gz, et zip)  : ddev import-db --src=dumpfile.sql.gz
ddev import-files dans sites/default/files (formats: dossier, zip, .tar, .tar.gz, .tgz)

backup (sur hote) :

ddev ssh
mkdir /var/www/html/.tarballs
mysqldump db | gzip >/var/www/html/.tarballs/db.sql.gz

 

ddev exec lance commande dans un contener (par défaut en docroot et contener web)
ex (lance le client mysql) : ddev exec --service db mysql   ;     ddev exec drush status   =  ddev . drush status
se loguer sur le contener db : ddev ssh --service db

ddev remove : Commande "non destructive" :  efface les conteners, mais pas la db du projet (ni le code et fichiers du projet).

  • etre dans un dossier de projet ddev remove -> efface les conteners. Ou ddev remove <projectname>
  • effacer la db importée d'un projet et conteners: ddev remove --remove-data

 

Composer sur le serveur de test

nom-projet$ ddev composer require drupal/migrate_upgrade:^3

ou à la main nom-projet/composer.json

 


 

Depuis son poste hote : utiliser outils de dev

db

Voir le port (change à chaque start/stop) avec ddev describe
mysql --host 127.0.0.1 --port num_port

drush

Pour utiliser le drush installé sur l'hote :

  1. définir un fichier /pathTo/MonRootDossier/drush.settings.php
    Faire un describe pour voir le port et
    <?php
    
    $databases['default']['default'] = array(
      'database' => "db",
      'username' => "db",
      'password' => "db",
      'host' => "127.0.0.1",
      'driver' => "mysql",
      'port' => <YOUR_PROJECT_DB_PORT>,
      'prefix' => "",
    );
  2. et le settings.php du site doit etre configuré pour charger le drush.settings.php
    if (!empty($_SERVER["argv"]) && strpos($_SERVER["argv"][0], "drush") && empty($_ENV['DEPLOY_NAME'])) {
      include __DIR__ . '../../../drush.settings.php';
    }

     

Ces fichiers de conf sont automatiquement créés si on a fait ddev import-db dans un projet sans fichier settings.php

 

Configurer nginx

https://ddev.readthedocs.io/en/latest/users/extend/customization-extendi...

Voir ddev nginx configs (montre les conf par défaut pour les applis). Additional configuration examples et documentation  nginx wiki

 

Plus sur le web

https://stackoverflow.com/questions/tagged/ddev+drupal?sort=votes
https://stackoverflow.com/questions/tagged/ddev

Chat  https://drupal.slack.com/ (Channel migration, ddev...)

logo drush