Title: Migrations Description: Creating and running migrations.
The TypeRocket migration system requires having WordPress command support to TypeRocket Galaxy. Once you ensure WordPress commands are available you will see the make migration command make:migration
.
! Note: Local VM machines will need to make sure the CLI has access to the guest and host machines.
TypeRocket migrations are stored in the file system under the database/migrations
folder. TypeRocket goes about migrations this way because WordPress does not have a standard migrations system.
When a migration is run it creates a database entry in the wp_options
table with the key tr_migrations
.
! Note: PRO migrations are stored in the database. This allows for multi-server configurations.
You can view the status of your migrations using the DevTools
extension in your WordPress admin on the Dev page under the migrations tab. If you have TypeRocket plugins their migrations will appear on this page as well.
To make a migration run, the make:migration
Galaxy command with a "name" for that migration. There are two types of migrations you can create: SQL and PHP. The default migration type is SQL.
php galaxy make:migration add_blocks_table
Then, in the migration file, add the SQL for your migration. Under the >>> Up >>>
section add the SQL for migrating up or forward. Under the >>> Down >>>
section add the SQL for migrating down or backward. Anywhere you add {!!prefix!!}
the migration system will replace {!!prefix!!}
with your WordPress table prefix (the default is wp_
). Likewise, you can use {!!charset!!}
for charset and {!!collate!!}
for collate.
-- Description: For reusable page builder components
-- >>> Up >>>
CREATE TABLE IF NOT EXISTS `{!!prefix!!}blocks` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE {!!collate!!} NOT NULL,
`blocks` longtext COLLATE {!!collate!!} DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET={!!charset!!};
-- >>> Down >>>
DROP TABLE IF EXISTS `{!!prefix!!}blocks`;
To create a PHP class based migration add php
after the migration name when using the make:migration
command.
php galaxy make:migration add_blocks_table php
Will create a PHP migration with this template:
<?php
use TypeRocket\Database\Migration;
return new class($wpdb) extends Migration
{
public function up()
{
}
public function down()
{
}
};
To migrate "up" and run all migrations that have not yet been run use the command migrate up
.
php galaxy migrate up
You can also specify how many migrations you would like to run. For example, to run just one migration you could do the following:
php galaxy migrate up 1
To migrate "down" and drop down one migration that has already been run use the command migrate down
.
php galaxy migrate down
You can also specify how many migrations you would like to run. For example, to run just three migrations you could do the following:
php galaxy migrate down 3
Migrate "down" all migrations that have been run.
php galaxy migrate flush
Migrate "down" all migrations that have been run and then migrate "up".
php galaxy migrate reload
The migrate command has two additional options:
--path
: An absolute path to a specific migrations folder.--wp_option
: The{{prefix}}_options
option name to track the migration's of the defined folder.
php galaxy migrate up --path=/my/path/migrations --wp_option=my_migrations_option