drupal-tooling

Drupal development tooling skill for DDEV local environments and Drush command-line operations (Drupal 8-11+). Use when working with Docker-based development environments, Drush commands, deployment workflows, or site management tasks.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "drupal-tooling" with this command: npx skills add omedia/drupal-skill/omedia-drupal-skill-drupal-tooling

Drupal Development Tooling

Overview

Enable expert-level Drupal development tooling capabilities with comprehensive guidance for DDEV Docker-based local development environments and Drush command-line operations for Drupal 8, 9, 10, and 11+.

When to Use This Skill

Invoke this skill when working with:

  • DDEV operations: Starting, managing, or configuring local development environments
  • Drush commands: Site management, configuration, cache operations
  • Database management: Import/export, snapshots, migrations
  • Deployment workflows: Configuration sync, database updates
  • Development setup: Project initialization, environment configuration
  • Troubleshooting: Debugging environment or command-line issues

Core Capabilities

1. DDEV Local Development

Manage Docker-based local Drupal environments efficiently:

Project initialization:

# Initialize new Drupal project
ddev config --project-type=drupal10 --docroot=web --create-docroot

# Start containers
ddev start

# Install Drupal via Composer
ddev composer create drupal/recommended-project

# Install Drupal site
ddev drush site:install standard --account-name=admin --account-pass=admin

Daily operations:

# Start/stop project
ddev start
ddev stop
ddev restart

# SSH into container
ddev ssh

# Launch site in browser
ddev launch

# View logs
ddev logs
ddev logs -f  # Follow logs

Database operations:

# Import database
ddev import-db --src=database.sql.gz

# Export database
ddev export-db --file=backup.sql.gz --gzip

# Create snapshot
ddev snapshot

# Restore snapshot
ddev snapshot restore

# Access MySQL CLI
ddev mysql

Reference documentation:

  • references/ddev.md - Complete DDEV reference

2. Drush Command-Line Management

Execute site management tasks efficiently:

Cache management:

# Rebuild cache (most common)
ddev drush cr

# Clear specific cache
ddev drush cache:clear css-js
ddev drush cache:clear render

Configuration management:

# Export configuration
ddev drush config:export
ddev drush cex

# Import configuration
ddev drush config:import
ddev drush cim

# View configuration
ddev drush config:get system.site
ddev drush cget system.site

# Set configuration
ddev drush config:set system.site name "My Site"
ddev drush cset system.site name "My Site"

Module management:

# Enable module
ddev drush pm:enable mymodule -y
ddev drush en mymodule -y

# Uninstall module
ddev drush pm:uninstall mymodule -y
ddev drush pmu mymodule -y

# List modules
ddev drush pm:list
ddev drush pml

# Download module
ddev drush pm:download webform

Database updates:

# Run pending database updates
ddev drush updatedb -y
ddev drush updb -y

User management:

# One-time login URL
ddev drush user:login
ddev drush uli

# Login as specific user
ddev drush uli admin

# Create user
ddev drush user:create newuser --mail="user@example.com" --password="pass"

# Change password
ddev drush user:password admin "newpassword"

Reference documentation:

  • references/drush.md - Complete Drush reference

3. Development Workflows

Common development and deployment workflows:

Standard deployment:

# Run database updates
ddev drush updb -y

# Import configuration
ddev drush cim -y

# Clear cache
ddev drush cr

# One-liner version
ddev drush updb -y && ddev drush cim -y && ddev drush cr

Fresh site setup:

# Clone repository
git clone <repo> myproject
cd myproject

# Start DDEV
ddev start

# Install dependencies
ddev composer install

# Import database and files
ddev import-db --src=database.sql.gz
ddev import-files --src=files.tar.gz

# Clear cache
ddev drush cr

# Launch site
ddev launch

Theme/module development:

# Start work
ddev start

# Clear cache frequently
ddev drush cr

# Watch for changes (if using build tools)
ddev exec npm run watch

# View logs
ddev drush watchdog:tail

4. Code Generation

Use Drush generators to scaffold code:

# Generate module
ddev drush generate module

# Generate controller
ddev drush generate controller

# Generate form
ddev drush generate form

# Generate plugin block
ddev drush generate plugin:block

# Generate service
ddev drush generate service

# Generate theme
ddev drush generate theme

# Generate hook
ddev drush generate hook

# List all generators
ddev drush generate --help

5. Debugging & Troubleshooting

Debug and monitor your Drupal site:

Enable Xdebug:

# Enable Xdebug
ddev xdebug on

# Disable Xdebug (improves performance)
ddev xdebug off

# Check status
ddev xdebug status

View logs:

# Recent watchdog messages
ddev drush watchdog:show

# Follow watchdog logs
ddev drush watchdog:tail

# Container logs
ddev logs -s web
ddev logs -s db

Project information:

# Show project details
ddev describe

# Drupal status
ddev drush status
ddev drush st

# List all DDEV projects
ddev list

Best Practices

DDEV Best Practices

  1. Run tools through DDEV: Always use ddev drush, ddev composer, ddev npm
  2. Snapshots: Create before risky operations
  3. Performance: Enable Mutagen (Mac) or NFS for better file sync
  4. Xdebug: Only enable when debugging
  5. Version control: Commit .ddev/config.yaml to share configuration
  6. Clean shutdown: Use ddev stop before system shutdown

Drush Best Practices

  1. Aliases: Use short aliases (cr, cex, cim, uli)
  2. Automation: Add -y flag to skip confirmations
  3. Custom commands: Create for repetitive tasks
  4. Site aliases: Configure for multi-environment management
  5. Chaining: Use && for sequential operations
  6. Error handling: Check exit codes in scripts

Deployment Best Practices

  1. Order: Run updates (updb) before config import (cim)
  2. Testing: Test deployment workflow in staging first
  3. Backups: Always backup before major changes
  4. Rollback plan: Have a way to revert changes
  5. Monitoring: Check logs after deployment

Common Operations

Initialize DDEV for Existing Project

cd existing-project

# Configure DDEV
ddev config

# Start containers
ddev start

# Install dependencies
ddev composer install

# Import database (if available)
ddev import-db --src=backup.sql.gz

# Clear cache
ddev drush cr

Pull From Remote Environment

# Configure Drush alias for remote site
# Then pull database and files
ddev pull @production

# Or pull separately
ddev drush sql:sync @production @self
ddev rsync @production:%files @self:%files

Update Drupal Core

# Backup first
ddev snapshot

# Update with Composer
ddev composer update drupal/core "drupal/core-*" --with-all-dependencies

# Run database updates
ddev drush updb -y

# Clear cache
ddev drush cr

Enable Development Settings

# Copy development settings
cp sites/example.settings.local.php sites/default/settings.local.php

# Disable CSS/JS aggregation via Drush
ddev drush config:set system.performance css.preprocess 0 -y
ddev drush config:set system.performance js.preprocess 0 -y

# Enable Twig debugging
# Edit sites/default/services.yml:
# twig.config:
#   debug: true
#   auto_reload: true
#   cache: false

# Clear cache
ddev drush cr

Troubleshooting

DDEV Issues

Containers won't start:

# Check Docker is running
docker ps

# Restart DDEV
ddev restart

# Power off and restart
ddev poweroff
ddev start

# Clean restart
ddev restart --clean

Port conflicts:

# Check what's using ports
ddev describe

# Change ports in .ddev/config.yaml:
# router_http_port: "8080"
# router_https_port: "8443"

# Restart
ddev restart

Permission issues:

# Fix file permissions
ddev exec chmod -R 755 web/sites/default/files
ddev exec chown -R www-data:www-data web/sites/default/files

Drush Issues

Drush not found:

# Always run through DDEV
ddev drush status

# Not just: drush status

Configuration sync failures:

# Check for overridden configuration
ddev drush config:status

# Force import
ddev drush cim -y --partial

# Check specific config
ddev drush config:get system.site

Database update failures:

# Run with verbose output
ddev drush updb -v

# Check specific module updates
ddev drush updatedb:status

# Check logs
ddev drush watchdog:show

Performance Optimization

DDEV Performance (Mac)

Enable Mutagen:

# In .ddev/config.yaml
ddev config --mutagen-enabled

# Restart
ddev restart

Enable NFS:

# In .ddev/config.yaml
ddev config --nfs-mount-enabled

# Restart
ddev restart

Drush Performance

Disable Xdebug when not debugging:

ddev xdebug off

Use specific commands instead of aliases:

# Faster (loads less)
ddev drush cache:rebuild

# vs
ddev drush cr

Resources

Reference Documentation

  • references/ddev.md - Complete DDEV reference

    • Project initialization and configuration
    • Database and file operations
    • Add-ons and services (Redis, Elasticsearch, etc.)
    • Performance optimization
    • Troubleshooting
  • references/drush.md - Complete Drush reference

    • Cache management commands
    • Configuration management
    • Module and theme operations
    • Database operations
    • User management
    • Custom command development

Searching References

# Find DDEV command
grep -r "ddev snapshot" references/

# Find Drush command
grep -r "config:import" references/

# Find deployment info
grep -r "deployment" references/

Common Use Cases

Local Development Setup

  1. Clone project: git clone <repo>
  2. Configure DDEV: ddev config
  3. Start: ddev start
  4. Install dependencies: ddev composer install
  5. Import DB: ddev import-db --src=db.sql.gz
  6. Clear cache: ddev drush cr
  7. Launch: ddev launch

Deploying Configuration Changes

  1. Export config: ddev drush cex -y
  2. Commit to git: git add config/ && git commit
  3. Push: git push
  4. On server: drush cim -y && drush cr

Debugging Performance Issues

  1. Enable Xdebug: ddev xdebug on
  2. Set breakpoints in IDE
  3. Trigger request: ddev launch
  4. Step through code
  5. Disable Xdebug: ddev xdebug off

Version Compatibility

DDEV Versions

  • DDEV v1.21+ recommended
  • Supports all Drupal versions (8-11+)
  • Update with: brew upgrade ddev (Mac) or platform equivalent

Drush Versions

  • Drush 10+ for Drupal 8.4+
  • Drush 11+ for Drupal 9.0+
  • Drush 12+ for Drupal 10.0+
  • Install via Composer (project-specific)

See Also

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

drupal-frontend

No summary provided by upstream source.

Repository SourceNeeds Review
General

drupal-backend

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

Ai Freelancing Guide

Provides a complete guide to AI freelancing including niche analysis, pricing, client acquisition, proposal templates, and delivery workflows.

Registry SourceRecently Updated