Initial commit
This commit is contained in:
387
references/drush.md
Normal file
387
references/drush.md
Normal file
@@ -0,0 +1,387 @@
|
||||
# Drush Commands Reference
|
||||
|
||||
Comprehensive Drush command reference for Drupal 8-11+. These commands work with Drush 10, 11, and 12.
|
||||
|
||||
## Cache Management
|
||||
|
||||
```bash
|
||||
# Clear all caches
|
||||
drush cache:rebuild
|
||||
drush cr
|
||||
|
||||
# Clear specific cache bins
|
||||
drush cache:clear css-js
|
||||
drush cache:clear render
|
||||
|
||||
# List all cache bins
|
||||
drush cache:bins
|
||||
```
|
||||
|
||||
## Configuration Management
|
||||
|
||||
```bash
|
||||
# Export configuration
|
||||
drush config:export
|
||||
drush cex
|
||||
|
||||
# Import configuration
|
||||
drush config:import
|
||||
drush cim
|
||||
|
||||
# Get configuration value
|
||||
drush config:get system.site name
|
||||
drush cget system.site name
|
||||
|
||||
# Set configuration value
|
||||
drush config:set system.site name "My Site"
|
||||
drush cset system.site name "My Site"
|
||||
|
||||
# Edit configuration in editor
|
||||
drush config:edit system.site
|
||||
|
||||
# Delete configuration
|
||||
drush config:delete mymodule.settings
|
||||
|
||||
# List all configuration
|
||||
drush config:list
|
||||
```
|
||||
|
||||
## Module Management
|
||||
|
||||
```bash
|
||||
# Enable module
|
||||
drush pm:enable mymodule
|
||||
drush en mymodule
|
||||
|
||||
# Uninstall module
|
||||
drush pm:uninstall mymodule
|
||||
drush pmu mymodule
|
||||
|
||||
# List all modules
|
||||
drush pm:list
|
||||
drush pml
|
||||
|
||||
# List enabled modules only
|
||||
drush pm:list --status=enabled
|
||||
|
||||
# Download module from drupal.org
|
||||
drush pm:download webform
|
||||
drush dl webform
|
||||
```
|
||||
|
||||
## Database Operations
|
||||
|
||||
```bash
|
||||
# Update database (run update hooks)
|
||||
drush updatedb
|
||||
drush updb
|
||||
|
||||
# Execute SQL query
|
||||
drush sql:query "SELECT * FROM users WHERE uid=1"
|
||||
drush sqlq "SELECT * FROM users WHERE uid=1"
|
||||
|
||||
# Connect to database CLI
|
||||
drush sql:cli
|
||||
drush sqlc
|
||||
|
||||
# Dump database to file
|
||||
drush sql:dump > backup.sql
|
||||
drush sql:dump --gzip > backup.sql.gz
|
||||
|
||||
# Drop all tables
|
||||
drush sql:drop
|
||||
|
||||
# Sanitize database (for dev environments)
|
||||
drush sql:sanitize
|
||||
```
|
||||
|
||||
## User Management
|
||||
|
||||
```bash
|
||||
# Login as user 1
|
||||
drush user:login
|
||||
drush uli
|
||||
|
||||
# Login as specific user
|
||||
drush user:login admin
|
||||
drush uli admin
|
||||
|
||||
# Create user
|
||||
drush user:create newuser --mail="user@example.com" --password="password"
|
||||
|
||||
# Cancel/delete user
|
||||
drush user:cancel username
|
||||
|
||||
# Add role to user
|
||||
drush user:role:add "administrator" username
|
||||
|
||||
# Remove role from user
|
||||
drush user:role:remove "administrator" username
|
||||
|
||||
# Change user password
|
||||
drush user:password admin "newpassword"
|
||||
|
||||
# Block user
|
||||
drush user:block username
|
||||
|
||||
# Unblock user
|
||||
drush user:unblock username
|
||||
```
|
||||
|
||||
## Content Management
|
||||
|
||||
```bash
|
||||
# Generate test content
|
||||
drush devel:generate:content 50 --bundles=article
|
||||
|
||||
# Delete content
|
||||
drush entity:delete node --bundle=article
|
||||
|
||||
# Generate users
|
||||
drush devel:generate:users 20
|
||||
```
|
||||
|
||||
## State Management
|
||||
|
||||
```bash
|
||||
# Get state value
|
||||
drush state:get system.maintenance_mode
|
||||
|
||||
# Set state value
|
||||
drush state:set system.maintenance_mode 1
|
||||
|
||||
# Delete state value
|
||||
drush state:delete mymodule.last_run
|
||||
```
|
||||
|
||||
## Theme Management
|
||||
|
||||
```bash
|
||||
# List all themes
|
||||
drush theme:list
|
||||
|
||||
# Enable theme
|
||||
drush theme:enable mytheme
|
||||
|
||||
# Uninstall theme
|
||||
drush theme:uninstall oldtheme
|
||||
|
||||
# Set default theme
|
||||
drush config:set system.theme default mytheme
|
||||
```
|
||||
|
||||
## Cron
|
||||
|
||||
```bash
|
||||
# Run cron
|
||||
drush cron
|
||||
|
||||
# Run cron for specific module
|
||||
drush cron mymodule
|
||||
```
|
||||
|
||||
## Status & Information
|
||||
|
||||
```bash
|
||||
# Show site status
|
||||
drush status
|
||||
drush st
|
||||
|
||||
# Show core status and available updates
|
||||
drush pm:security
|
||||
|
||||
# Show Drupal version
|
||||
drush core:status
|
||||
|
||||
# Show requirements report
|
||||
drush core:requirements
|
||||
```
|
||||
|
||||
## Development & Debugging
|
||||
|
||||
```bash
|
||||
# Watch for file changes and clear cache
|
||||
drush watchdog:tail
|
||||
|
||||
# Show recent log messages
|
||||
drush watchdog:show
|
||||
|
||||
# Show recent log messages and follow
|
||||
drush watchdog:tail
|
||||
|
||||
# Evaluate PHP code
|
||||
drush php:eval "echo \Drupal::VERSION;"
|
||||
drush ev "echo \Drupal::VERSION;"
|
||||
|
||||
# Open PHP REPL
|
||||
drush php:cli
|
||||
```
|
||||
|
||||
## Generate Code (Drush Generate)
|
||||
|
||||
```bash
|
||||
# Generate module
|
||||
drush generate module
|
||||
|
||||
# Generate controller
|
||||
drush generate controller
|
||||
|
||||
# Generate form
|
||||
drush generate form
|
||||
|
||||
# Generate plugin block
|
||||
drush generate plugin:block
|
||||
|
||||
# Generate service
|
||||
drush generate service
|
||||
|
||||
# Generate theme
|
||||
drush generate theme
|
||||
|
||||
# Generate hook implementation
|
||||
drush generate hook
|
||||
|
||||
# Generate event subscriber
|
||||
drush generate event-subscriber
|
||||
|
||||
# List all generators
|
||||
drush generate --help
|
||||
```
|
||||
|
||||
## Field Management
|
||||
|
||||
```bash
|
||||
# Create field
|
||||
drush field:create node.article.field_custom
|
||||
|
||||
# Delete field
|
||||
drush field:delete node.article.field_custom
|
||||
|
||||
# List fields
|
||||
drush field:list
|
||||
```
|
||||
|
||||
## Locale/Translation
|
||||
|
||||
```bash
|
||||
# Import translations
|
||||
drush locale:import de
|
||||
|
||||
# Update translations
|
||||
drush locale:update
|
||||
|
||||
# Check translation status
|
||||
drush locale:check
|
||||
```
|
||||
|
||||
## Queue Management
|
||||
|
||||
```bash
|
||||
# Run specific queue
|
||||
drush queue:run mymodule_queue
|
||||
|
||||
# List all queues
|
||||
drush queue:list
|
||||
|
||||
# Delete items from queue
|
||||
drush queue:delete mymodule_queue
|
||||
```
|
||||
|
||||
## Deployment Commands
|
||||
|
||||
```bash
|
||||
# Standard deployment workflow
|
||||
drush updatedb -y
|
||||
drush config:import -y
|
||||
drush cache:rebuild
|
||||
|
||||
# One-liner deployment
|
||||
drush updb -y && drush cim -y && drush cr
|
||||
```
|
||||
|
||||
## Site Installation
|
||||
|
||||
```bash
|
||||
# Install Drupal site
|
||||
drush site:install standard --db-url=mysql://user:pass@localhost/dbname --account-name=admin --account-pass=admin
|
||||
|
||||
# Install with configuration
|
||||
drush site:install --existing-config
|
||||
```
|
||||
|
||||
## Alias Usage
|
||||
|
||||
Drush aliases allow running commands on remote sites.
|
||||
|
||||
```bash
|
||||
# Run command on remote site
|
||||
drush @production cache:rebuild
|
||||
|
||||
# Sync database from remote to local
|
||||
drush sql:sync @production @self
|
||||
|
||||
# Sync files from remote to local
|
||||
drush rsync @production:%files @self:%files
|
||||
```
|
||||
|
||||
## Useful Flags
|
||||
|
||||
```bash
|
||||
# -y: Assume "yes" to all prompts
|
||||
drush en mymodule -y
|
||||
|
||||
# -v: Verbose output
|
||||
drush cache:rebuild -v
|
||||
|
||||
# --uri: Specify site URI (multisite)
|
||||
drush --uri=example.com cache:rebuild
|
||||
|
||||
# --root: Specify Drupal root directory
|
||||
drush --root=/var/www/html cache:rebuild
|
||||
|
||||
# --debug: Show debug information
|
||||
drush --debug cache:rebuild
|
||||
```
|
||||
|
||||
## Custom Drush Commands
|
||||
|
||||
Create custom Drush commands by implementing Drush command files in your module:
|
||||
|
||||
**mymodule/src/Commands/MyModuleCommands.php**
|
||||
```php
|
||||
<?php
|
||||
|
||||
namespace Drupal\mymodule\Commands;
|
||||
|
||||
use Drush\Commands\DrushCommands;
|
||||
|
||||
/**
|
||||
* Custom Drush commands for mymodule.
|
||||
*/
|
||||
class MyModuleCommands extends DrushCommands {
|
||||
|
||||
/**
|
||||
* Performs a custom operation.
|
||||
*
|
||||
* @command mymodule:custom-operation
|
||||
* @aliases mco
|
||||
* @usage mymodule:custom-operation
|
||||
* Runs the custom operation.
|
||||
*/
|
||||
public function customOperation() {
|
||||
$this->output()->writeln('Running custom operation...');
|
||||
// Your custom logic here
|
||||
$this->logger()->success('Operation completed successfully!');
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Aliases**: Create aliases in `drush/sites/` for easier multi-site management
|
||||
2. **Automation**: Use Drush commands in deployment scripts
|
||||
3. **Backup**: Always backup before running destructive commands
|
||||
4. **Testing**: Test Drush scripts in development before production
|
||||
5. **Version**: Check Drush version compatibility with `drush --version`
|
||||
6. **Performance**: Use `drush status` to verify environment configuration
|
||||
Reference in New Issue
Block a user