Skip to content

Simple library writen in PHP without framework dependancy for database version control. Supports Sqlite, MySql, Sql Server and Postgres

License

Notifications You must be signed in to change notification settings

byjg/php-migration

Repository files navigation

Database Migration

Sponsor Build Status Opensource ByJG GitHub source GitHub license GitHub release

A simple, framework-agnostic database migration tool that uses pure SQL commands for versioning your database.

Key Features

  • Pure SQL Migrations - Use native SQL commands instead of framework-specific code
  • Multiple Database Support - Works with MySQL, PostgreSQL, SQLite, and SQL Server
  • Framework Independent - Can be used with any PHP framework or standalone
  • CLI & Library Support - Use as a command-line tool or integrate into your PHP application
  • Transaction Support - Ensures database consistency (where supported)
  • Multi-Developer Friendly - Supports parallel development with -dev suffixed versions

Quick Start

Installation

composer require "byjg/migration"

CLI Usage

The package includes a built-in CLI tool:

# Show current database version
vendor/bin/migrate version --connection mysql://user:pass@localhost/database

# Update database to latest version
vendor/bin/migrate update --connection mysql://user:pass@localhost/database --path ./migrations

# Reset database and run all migrations
vendor/bin/migrate reset -c mysql://user:pass@localhost/database -p ./migrations

See CLI Usage for complete documentation.

Library Usage

<?php
$connectionUri = new \ByJG\Util\Uri('mysql://user:pass@localhost/database');
\ByJG\DbMigration\Migration::registerDatabase(\ByJG\DbMigration\Database\MySqlDatabase::class);

$migration = new \ByJG\DbMigration\Migration($connectionUri, '.');
$migration->update();

Documentation

For detailed documentation, please visit:

Supported Databases

  • MySQL/MariaDB
  • PostgreSQL
  • SQLite
  • SQL Server (Windows and Linux)

For connection strings and specific database setup, see our database documentation.

Related Projects

Dependencies

flowchart TD
    byjg/migration --> byjg/anydataset-db
    byjg/migration --> ext-pdo
Loading

Open source ByJG

About

Simple library writen in PHP without framework dependancy for database version control. Supports Sqlite, MySql, Sql Server and Postgres

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 11