Migrate from DDEV
Switch from DDEV to DAMP DevContainers
Switch from DDEV to DAMP and get native VS Code DevContainers, visual service management, and simplified configuration.
Why Migrate?
| Feature | DDEV | DAMP |
|---|---|---|
| DevContainers | ⚠️ Manual | ✅ Native VS Code integration |
| Configuration | .ddev/ folder | .devcontainer/ (standard) |
| Visual Management | ❌ CLI only | ✅ GUI application |
| Service Installation | YAML config | Click to install |
| Laravel Focus | ⚠️ Generic | ✅ Laravel-optimized |
Keep Your Code
DAMP replaces DDEV's .ddev/ folder with .devcontainer/ - your project code stays the same!
Migration Process
Stop DDEV
Stop all DDEV containers:
# In your project directory
ddev stop
# Optional: Remove DDEV containers completely
ddev delete -OExport DDEV Database
Export your database before stopping DDEV:
# While DDEV is running
ddev export-db --file=backup.sql.gzOr use direct mysqldump:
ddev mysql -e "mysqldump -u root -proot db > backup.sql"Open DAMP
Launch DAMP and click "Add Site" button.
Select "Existing Project"
Choose the Existing Project option.
Configure Site
Fill in the details:
| Field | Value | Example |
|---|---|---|
| Name | Your site name | my-ddev-site |
| Path | Your project folder | C:\Sites\my-ddev-site |
| PHP Version | Match .ddev/config.yaml | 8.3 |
Check your DDEV PHP version:
# .ddev/config.yaml
php_version: "8.3" # Use this versionInstall Services
Map DDEV services to DAMP:
| DDEV Service | DAMP Service | Install? |
|---|---|---|
db (MySQL) | MySQL | ✅ Required |
db (PostgreSQL) | PostgreSQL | ✅ If using |
redis | Redis | ✅ If configured |
mailhog | Mailpit | ✅ Recommended |
Check your .ddev/config.yaml:
services:
redis:
type: redis:7
# Install matching service in DAMPGo to Services page → Click "Install" for each service.
Import Database
Import your exported database:
# Inside VS Code DevContainer terminal
gunzip < backup.sql.gz | mysql -h damp-mysql -u damp -pdamp damp
# Or if you have uncompressed SQL
mysql -h damp-mysql -u damp -pdamp damp < backup.sqlUpdate Configuration
Open project in VS Code DevContainer and update .env:
DDEV .env:
DB_HOST=db
DB_DATABASE=db
DB_USERNAME=db
DB_PASSWORD=db
REDIS_HOST=redis
MAIL_HOST=localhost
MAIL_PORT=1025DAMP .env:
DB_HOST=damp-mysql
DB_DATABASE=damp
DB_USERNAME=damp
DB_PASSWORD=damp
REDIS_HOST=damp-redis
MAIL_HOST=damp-mailpit
MAIL_PORT=1025Clean Up DDEV Files
After successful migration, you can remove:
my-project/
├── .ddev/ ← Can delete
│ ├── config.yaml
│ └── ...
└── .gitignore ← Update to remove .ddevBackup First
Keep .ddev/ folder until you verify everything works in DAMP!
Test Your Site
- Open in VS Code: Click "Open in VS Code" in DAMP
- Reopen in Container when prompted
- Browse to
https://my-project.local - Install SSL certificate from DAMP
What Changed
Configuration Files
DDEV:
.ddev/
├── config.yaml ← Project config
├── docker-compose.*.yaml
└── commands/DAMP:
.devcontainer/ ← Standard DevContainer
├── devcontainer.json
├── Dockerfile
├── php.ini
└── xdebug.ini
.vscode/ ← VS Code integration
├── launch.json
└── settings.jsonCommand Comparison
| Task | DDEV | DAMP |
|---|---|---|
| Start | ddev start | Automatic in DevContainer |
| Stop | ddev stop | Close VS Code |
| SSH | ddev ssh | Use VS Code terminal |
| Composer | ddev composer | composer (direct) |
| Artisan | ddev artisan | php artisan (direct) |
| npm | ddev npm | npm (direct) |
| Database | ddev mysql | mysql -h damp-mysql |
No Prefix Needed
DAMP runs commands directly in DevContainer - no ddev prefix needed!
Service Hostnames
DDEV:
DB_HOST=db
REDIS_HOST=redisDAMP:
DB_HOST=damp-mysql # Prefixed with "damp-"
REDIS_HOST=damp-redisDomain Access
DDEV:
https://my-project.ddev.siteDAMP:
https://my-project.localKey Benefits
🎯 Native DevContainers
DDEV: Custom Docker Compose setup
DAMP: Standard VS Code DevContainers (works with GitHub Codespaces!)
🖥️ Visual Interface
DDEV: CLI commands only
DAMP: GUI for service installation, site management, logs
🚀 Simpler Configuration
DDEV: YAML configuration files
DAMP: Visual service installation
🔧 Laravel-Optimized
DDEV: Generic PHP/framework support
DAMP: Laravel starter kits, Tinker integration, Artisan helpers
Troubleshooting
Team Migration
DDEV and DAMP can coexist! Migrate gradually - some team members can use DDEV while others use DAMP.
Advanced: Side-by-Side Comparison
Configuration Structure
DDEV config.yaml:
name: my-project
type: php
php_version: "8.3"
webserver_type: nginx-fpm
database:
type: mysql
version: "8.0"DAMP devcontainer.json:
{
"name": "my-project",
"image": "damp-php-8.3",
"forwardPorts": [80, 443],
"customizations": {
"vscode": {
"extensions": ["bmewburn.vscode-intelephense-client"]
}
}
}