Documentation
Database
Migrations

Migrations

WP Bones provides a simple implementation of the migration. Of course, this implementation is a little bit different than Laravel migration. First of all, you can use php bones migrate:create in order to create a migration file:

php bones migrate:create MyTable

You'll see a new file in /database/migrations/ folder, looking like to /database/migrations/2016_01_28_131206_create_mytable_table.php. This file contains your class migration:

use WPKirk\WPBones\Database\Migrations\Migration;
 
return new class extends Migration
{
 
  public function up()
  {
    // Create your table
  }
 
}

For example, if you want a products table, please use:

php bones migrate:create Products

Edit the migration file like this:

use WPKirk\WPBones\Database\Migrations\Migration;
 
return new class extends Migration {
 
  public function up()
  {
 
    $this->create('products', "(
              log_id bigint(20) unsigned NOT NULL auto_increment,
              user_id bigint(20) unsigned NOT NULL default '0',
              activity varchar(20) NOT NULL default 'updated',
              object_id bigint(20) unsigned NOT NULL default '0',
              object_type varchar(20) NOT NULL default 'post',
              activity_date datetime NOT NULL default '0000-00-00 00:00:00',
              PRIMARY KEY  (log_id),
              KEY user_id (user_id)
         ) {$this->charsetCollate};" );
 
  }
};

Remember that the migrations files will be executed when a plugin is activated. You'll see in the database a table named wp_products.

WordPress prefix

As you know, the real name of the table products is {prefix}_products. Usually, {prefix} is wp_ for default. Anyway, you don't need to use the WordPress prefix, WP Bones will do that for you.