PHPackages                             dreadlabs/app-migration - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. dreadlabs/app-migration

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

dreadlabs/app-migration
=======================

Provides a package for adding runtime migrations to an application.

0.1.1(10y ago)03322MITPHP

Since Oct 1Pushed 10y ago1 watchersCompare

[ Source](https://github.com/DreadLabs/app-migration)[ Packagist](https://packagist.org/packages/dreadlabs/app-migration)[ RSS](/packages/dreadlabs-app-migration/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (8)Versions (3)Used By (2)

AppMigration
============

[](#appmigration)

Provides an opinionated, ready-to-use way to integrate runtime migration into your PHP application.

Status
------

[](#status)

[![Build Status](https://camo.githubusercontent.com/10510f7490f4ad3019f83fd0dbf529a40e5033d3c433ede065da9c698ee082eb/68747470733a2f2f7472617669732d63692e6f72672f44726561644c6162732f6170702d6d6967726174696f6e2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/DreadLabs/app-migration)[![Coverage Status](https://camo.githubusercontent.com/bb063a0212c20614e42ceb6c925f989915eb2d4bc6c62cf2eb3645707a6c1489/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f44726561644c6162732f6170702d6d6967726174696f6e2f62616467652e7376673f6272616e63683d6d617374657226736572766963653d676974687562)](https://coveralls.io/github/DreadLabs/app-migration?branch=master)[![SensioLabsInsight](https://camo.githubusercontent.com/5885bff84ae2a32eae3729fc19c80b7ffc7750e52c8bad5b98e66e5f75698c1b/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f33313265663632342d633331372d343163372d383539642d6264643237306338623362342f6d696e692e706e67)](https://insight.sensiolabs.com/projects/312ef624-c317-41c7-859d-bdd270c8b3b4)[![Code Climate](https://camo.githubusercontent.com/75d2d1932eee2bce3716d5fa9d9e9e84aafc4d2a53033302e4aa18500a407517/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f44726561644c6162732f6170702d6d6967726174696f6e2f6261646765732f6770612e737667)](https://codeclimate.com/github/DreadLabs/app-migration)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/2d51fd05370b3d29274867a8300bbd7175e193f507b42bd099b641a082a188b6/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f44726561644c6162732f6170702d6d6967726174696f6e2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/DreadLabs/app-migration/?branch=master)

Installation
------------

[](#installation)

```
~ $ php composer.phar require dreadlabs/app-migration:~0.1.1

```

Components
----------

[](#components)

### Interfaces

[](#interfaces)

- LockInterface - Adapter interface to locking library
- LoggerInterface - An slimmed down version of the PSR-3 logger interface
- MediatorInterface - This is the glue between lock, logger and migrator
- MigratorInterface -Adapter interface to migration library

### Exceptions

[](#exceptions)

- LockingException - If anything goes wrong during locking
- MigrationException - If a migration can't be executed. Exception code is the version number of the migration which produced the exception.
- TopologyViolationException - If one or more unprocessed migrations are younger than the latest processed migration.

Companion packages
------------------

[](#companion-packages)

- [dreadlabs/app-migration-lock-ninjamutex](//github.com/DreadLabs/app-migration-lock-ninjamutex) - A lock adapter for `arvenil/ninja-mutex`
- [dreadlabs/app-migration-migrator-phinx](//github.com/DreadLabs/app-migration-migrator-phinx) - A migrator adapter for `robmorgan/phinx`
- [dreadlabs/app-migration-typo3](//github.com/DreadLabs/app-migration-typo3) - An integration into TYPO3.CMS

Opinionated - why?
------------------

[](#opinionated---why)

### Topological assumption

[](#topological-assumption)

I believe, there should be only one direction during migration: "up". This belief comes from looking to migrations like they are ordered on a time axis. You can't go back in time - can you? - and therefore no way to migrate "down".

If you have the need to migrate down (e.g. during testing), just create another migration which rolls back the last one. Then decide which migrations to drop and which can go into CVS.

### Logging

[](#logging)

Logging is essential during migration. If something went wrong, you need to know as soon as possible what is the problem. Logging is a first class citizen in the mediator. If you don't need logging, just pass in a NullLogger and you're good to go.

License
-------

[](#license)

MIT, © 2015 Thomas Juhnke

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

3928d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/277988?v=4)[tåmm¥](/maintainers/dreadwarrior)[@dreadwarrior](https://github.com/dreadwarrior)

---

Top Contributors

[![dreadwarrior](https://avatars.githubusercontent.com/u/277988?v=4)](https://github.com/dreadwarrior "dreadwarrior (17 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/dreadlabs-app-migration/health.svg)

```
[![Health](https://phpackages.com/badges/dreadlabs-app-migration/health.svg)](https://phpackages.com/packages/dreadlabs-app-migration)
```

###  Alternatives

[jms/cg

Toolset for generating PHP code

15616.0M8](/packages/jms-cg)[yoast-seo-for-typo3/yoast_seo

Yoast SEO for TYPO3

511.7M9](/packages/yoast-seo-for-typo3-yoast-seo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
