Skip to content

Command Line Tools

wheels dbmigrate - commands

These are the commands in the wheels dbmigrate namespace. They allow you to manipulate the database structure and script the changes. This makes is easy to share your changes with coworkers, check them into source control, or apply them automatically when you deploy your code to production.

This is another namespace with sub commands within it. It also has an alias of wheels db which allows you to shorten the command you need to type.

This command doesn’t take any inputs but simply tries to communicate with the running server and gather information about your migrations and displays them in a table.

wheels dbmigrate info
❯ wheels db info
Sending: http://127.0.0.1:59144/rewrite.cfm?controller=wheels&action=wheels&view=cli&command=info
Call to bridge was successful.
+-----------------------------------------+-----------------------------------------+
| Datasource: MyCFWheelsApp | Total Migrations: 3 |
| Database Type: H2 | Available Migrations: 2 |
| | Current Version: 20220619110404 |
| | Latest Version: 20220619110706 |
+-----------------------------------------+-----------------------------------------+
+----------+------------------------------------------------------------------------+
| | 20220619110706_cli_create_column_user_lastname |
| | 20220619110540_cli_create_column_user_firstname |
| migrated | 20220619110404_cli_create_table_users |
+----------+------------------------------------------------------------------------+

From the information presented in the two tables you can see how many migration files are in your application and of those how many have already been applied and available to be applied. You are also presented with the datasource name and database type information.

This command will migrate the database to the latest version. This command will apply each migration file from the current state all the way to the latest one at a time. If a SQL error is encountered in one of the files, the command will stop at that point and report the error.

wheels dbmigrate latest

This command will migrate the database to version 0 effectively resetting the database to nothing.

wheels dbmigrate reset

This command will process the next migration file from the current state. If the database is already at the latest version this command will have no effect.

wheels dbmigrate up

This command will reverse the current migration file and take the database one step backwards. If the database is already at version 0 then this command will have no effect.

wheels dbmigrate down

This command will run a particular migration file and take the database to that version. The four directional migration commands above latest, reset, up, and down each in turn call this command to process their intended action.

wheels dbmigrate exec [version]
ParameterRequiredDefaultDescription
versiontrueThe version to migrate the database to

This command will generate a new migration file for creating a table in the database. Keep in mind you will still have to run the migration file but this will add it to the migration history.

wheels dbmigrate create table [name] [force] [id] [primaryKey]
ParameterRequiredDefaultDescription
nametrueThe name of the database table to create
forcefalsefalseForce the creation of the table
idfalsetrueAuto create ID column as autoincrement ID
primaryKeyfalseIDOverrides the default primary key column name

This command will generate a new migration file for adding a new column to an existing table.

wheels dbmigrate create column [name] [columnType] [columnName] [default] [null] [limit] [precision] [scale]
ParameterRequiredDefaultDescription
nametrueThe name of the database table to modify
columnTypetrueThe column type to add
columnNamefalseThe column name to add
defaultfalseThe default value to set for the column
nullfalsetrueShould the column allow nulls
limitfalseThe character limit of the column
precisionfalseThe precision of the numeric column
scalefalseThe scale of the numeric column

This command generates a migration file to remove a table. The migration file is will still need to be run individual but this command gets the migration generated and into the history.

wheels dbmigrate remove table [name]
ParameterRequiredDefaultDescription
nametrueThe name of the database table to remove