Object Relational Mapping
Creating Records
Reading Records
Updating Records
Deleting Records
Column Statistics
Dynamic Finders
Getting Paginated Data
Associations
Nested Properties
Object Validation
Object Callbacks
Calculated Properties
Transactions
Dirty Records
Soft Delete
Automatic Time Stamps
Using Multiple Data Sources
wheels db drop
⚠️ Note: This command depends on configuration values. Please verify your database configuration before executing it.
Drop an existing database.
Synopsis
wheels db drop [--datasource=<name>] [--environment=<env>] [--force]
Description
The wheels db drop
command permanently deletes a database. This is a destructive operation that cannot be undone. By default, it requires confirmation unless the --force
flag is used.
Options
--datasource=
Specify which datasource's database to drop. If not provided, uses the default datasource from your Wheels configuration.
wheels db drop --datasource=myapp_dev
--environment=
Specify the environment to use. Defaults to the current environment.
wheels db drop --environment=testing
--force
Skip the confirmation prompt. Useful for scripting.
wheels db drop --force
Examples
Basic Usage
Drop database with confirmation:
wheels db drop
# Will prompt: Are you sure you want to drop the database 'myapp_dev'? Type 'yes' to confirm:
Force Drop
Drop without confirmation:
wheels db drop --force
Drop Test Database
wheels db drop --datasource=myapp_test --environment=testing --force
Safety Features
- Confirmation Required: By default, you must type "yes" to confirm
- Production Warning: Extra warning when dropping production databases
- Clear Messaging: Shows database name and environment before dropping
Database-Specific Behavior
MySQL/MariaDB
- Uses
DROP DATABASE IF EXISTS
statement - Connects to
information_schema
to execute command
PostgreSQL
- Terminates existing connections before dropping
- Uses
DROP DATABASE IF EXISTS
statement - Connects to
postgres
system database
SQL Server
- Sets database to single-user mode to close connections
- Uses
DROP DATABASE IF EXISTS
statement - Connects to
master
system database
H2
- Deletes database files (.mv.db, .lock.db, .trace.db)
- Shows which files were deleted
Warning
This operation is irreversible! Always ensure you have backups before dropping a database.
Best Practices
-
Always backup first:
wheels db dump --output=backup-before-drop.sql wheels db drop
-
Use --force carefully: Only in scripts where you're certain
-
Double-check environment: Especially important for production
Error Messages
"Database not found"
The database doesn't exist. No action needed.
"Access denied"
The database user doesn't have permission to drop databases. Grant DROP privileges to the user.
"Database in use"
Some databases prevent dropping while connections are active. The command attempts to close connections automatically.
Related Commands
wheels db create
- Create a new databasewheels db reset
- Drop and recreate databasewheels db dump
- Backup before dropping