PHPackages                             desaiuditd/enhanced-wp-migrations - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. desaiuditd/enhanced-wp-migrations

ActiveLibrary[Database &amp; ORM](/categories/database)

desaiuditd/enhanced-wp-migrations
=================================

WordPress library for managing database table schema upgrades and data seeding

0.0.4(6y ago)0991GPL-2.0-or-laterPHPPHP &gt;=5.4

Since Apr 4Pushed 6y agoCompare

[ Source](https://github.com/desaiuditd/enhanced-wp-migrations)[ Packagist](https://packagist.org/packages/desaiuditd/enhanced-wp-migrations)[ RSS](/packages/desaiuditd-enhanced-wp-migrations/feed)WikiDiscussions master Synced yesterday

READMEChangelog (4)Dependencies (3)Versions (5)Used By (0)

Enhanced WordPress Migrations
=============================

[](#enhanced-wordpress-migrations)

A WordPress library for managing database table schema upgrades and data seeding.

Ever had to create a custom table for some plugin or custom code to use? To keep the site updated with the latest version of that table you need to keep track of what version the table is at. This can get overly complex for lots of tables.

This package is forked from [deliciousbrains/wp-migrations](https://github.com/deliciousbrains/wp-migrations) with some improvements.

This package is inspired by [Laravel's database migrations](https://laravel.com/docs/5.8/migrations). You create a new migration PHP file, add your schema update code, and optionally include a rollback method to reverse the change.

Simply run `wp dbi migrate` on the command line using WP CLI and any migrations not already run will be executed.

The great thing about making database schema and data updates with migrations, is that the changes are file-based and therefore can be stored in version control, giving you better control when working across different branches.

### Requirements

[](#requirements)

This package is designed to be used on a WordPress site project, not for a plugin or theme.

It needs to be running PHP 5.4 or higher.

You need to have access to run WP CLI on the server. Typically `wp dbi migrate` will be run as a last stage build step in your deployment process.

### Key Differences from wp-migrations

[](#key-differences-from-wp-migrations)

- Removed support for multiple migration directories. I've made assumption that all of your migration files should be located at one place only. So that the package can follow [SemVer](https://semver.org/) in the migration names and filenames (Similar to [Flyway](https://flywaydb.org/)).
- Individual migrations will be identified with their respective semver number. E.g., `1`, `1.0.1`, `1.1` etc.
- `wp edbm migrate` command will use the version number of the migration instead of the class name. E.g., `wp edbm migrate 2.0.1`
- Migration file name conventions is `.php`. E.g., `1.php`, `1.0.1.php`, `2.1.php` etc. Usually, you can start your migrations from `0.0.1.php`.
- Make sure you put only one class in one migration file.

### Installation

[](#installation)

- `composer require desaiuditd/enhanced-wp-migrations`
- Bootstrap the package by adding `\EnhancedWPMigrations\Database\Migrator::instance();` to an mu-plugin.
- Run `wp edbm migrate --setup` on the server.

### Migrations

[](#migrations)

By default, the command will look for migration files in `/app/migrations` directory alongside the vendor folder. This can be altered with the filter `edbm_wp_migrations_path`.

An example migration to create a table would look like:

```
