wheels destroy
Remove generated code and files associated with a model, controller, views, and tests.
Synopsis
wheels destroy <name>
wheels d <name>CommandBox Parameter Syntax
This command supports multiple parameter formats:
Positional parameters:
wheels destroy user(resource name as positional)Named parameters:
name=value(e.g.,name=user)
Parameter Mixing Rules:
✅ ALLOWED:
Positional:
wheels destroy userNamed:
wheels destroy name=user
❌ NOT ALLOWED:
Positional + named for same parameter:
wheels destroy user name=other
Recommendation: Use positional parameter for simplicity: wheels destroy user
Note: This command always prompts for confirmation before proceeding. There is no --force flag to skip confirmation.
Description
The wheels destroy command removes all files and code associated with a resource that was previously generated. It's useful for cleaning up mistakes or removing features completely. This command will also drop the associated database table and remove resource routes.
Arguments
name
Name of the resource to destroy
Yes
Options
This command has no additional options. It always prompts for confirmation before proceeding.
What Gets Removed
When you destroy a resource, the following items are deleted:
Model file (
/app/models/[Name].cfc)Controller file (
/app/controllers/[Names].cfc)Views directory (
/app/views/[names]/)Model test file (
/tests/specs/models/[Name].cfc)Controller test file (
/tests/specs/controllers/[Names].cfc)View test directory (
/tests/specs/views/[names]/)Resource route entry in
/config/routes.cfmDatabase table (if confirmed)
Examples
Basic destroy
# Positional (recommended)
wheels destroy user
# OR named
wheels destroy name=user
# OR alias (positional)
wheels d userThis will prompt:
================================================
= Watch Out! =
================================================
This will delete the associated database table 'users', and
the following files and directories:
/app/models/User.cfc
/app/controllers/Users.cfc
/app/views/users/
/tests/specs/models/User.cfc
/tests/specs/controllers/Users.cfc
/tests/specs/views/users/
/config/routes.cfm
.resources("users")
Are you sure? [y/n]Using the short alias
# Positional with alias (recommended)
wheels d product
# OR named with alias
wheels d name=productConfirmation
The command always asks for confirmation and shows exactly what will be deleted:
================================================
= Watch Out! =
================================================
This will delete the associated database table 'users', and
the following files and directories:
/app/models/User.cfc
/app/controllers/Users.cfc
/app/views/users/
/tests/specs/models/User.cfc
/tests/specs/controllers/Users.cfc
/tests/specs/views/users/
/config/routes.cfm
.resources("users")
Are you sure? [y/n]Safety Features
Confirmation Required: Always asks for confirmation before proceeding
Shows All Changes: Lists all files and directories that will be deleted
Database Migration: Creates and runs a migration to drop the table
Route Cleanup: Automatically removes resource routes from routes.cfm
What Gets Destroyed
Files Deleted:
Model file
Controller file
Views directory and all view files
Test files (model, controller, and view tests)
Database Changes:
Creates a migration to drop the table
Runs
wheels dbmigrate latestto execute the migration
Route Changes:
Removes
.resources("name")from routes.cfmCleans up extra whitespace
Best Practices
Commit First: Always commit your changes before destroying
Review Carefully: Read the confirmation list carefully
Check Dependencies: Make sure other code doesn't depend on what you're destroying
Backup Database: Have a database backup before running in production
Common Workflows
Undo a generated resource
# Generated the wrong name
wheels generate resource prduct # Oops, typo!
wheels destroy prduct # Remove it
wheels generate resource product # Create correct oneClean up after experimentation
# Try out a feature
wheels generate scaffold blog_post title:string,content:text
# Decide you don't want it
wheels destroy blog_postNotes
Cannot be undone - files are permanently deleted
Database table is dropped via migration
Resource routes are automatically removed from routes.cfm
Only works with resources that follow Wheels naming conventions
See Also
wheels generate resource - Generate resources
wheels generate scaffold - Generate scaffolding
wheels dbmigrate remove table - Remove database tables
Last updated
Was this helpful?

