Skip to content

Run mutually exclusive migrations from more than one server at a time.

Notifications You must be signed in to change notification settings

netsells/laravel-mutex-migrations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mutex Migrations for Laravel

Run mutually exclusive migrations from more than one server at a time.

Using Laravel's functionality for Atomic Locks, this package extends the built-in MigrateCommand class to allow migrations to be run safely when there is the chance that they may be run concurrently against the same database.

Installation

Install the package with:

composer require netsells/laravel-mutex-migrations

Optionally publish the package config file:

php artisan vendor:publish --tag=mutex-migrations-config

Usage

Running a mutex migration using the default database store requires the existence of a table to store cache locks. If it does not exist the command will automatically fallback to a standard migration.

php artisan migrate --mutex

If two or more migrations happen to run concurrently, the first to acquire a lock will block the next one from running until it has finished, or until the lock times out - after 60 seconds, by default.

Testing

./vendor/bin/phpunit

About

Run mutually exclusive migrations from more than one server at a time.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages