This library is a simple one way migration system.
You can run both SQL and Commands migrations.
composer require formal/migrations
use Formal\Migrations\Factory;
use Innmind\OperatingSystem\Factory as OS;
use Innmind\Url\{
Url,
Path,
};
$dsn = Url::of('mysql://user:[email protected]:3306/database');
Factory::of(OS::build())
->storeVersionsInDatabase($dsn)
->sql()
->files(Path::of('migrations/folder/'))
->migrate($dsn)
->match(
static fn() => print('Everything has been migrated'),
static fn(\Throwable $error) => printf(
'Migrations failed with the message : %s',
$error->getMessage(),
),
);
Full documentation available here.