PHPackages                             dyrynda/vagabond - 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. dyrynda/vagabond

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

dyrynda/vagabond
================

Eloquent without a home

2.0.0(8y ago)481224[1 issues](https://github.com/michaeldyrynda/vagabond/issues)MITPHPPHP &gt;=7.0.0

Since Jan 12Pushed 8y ago3 watchersCompare

[ Source](https://github.com/michaeldyrynda/vagabond)[ Packagist](https://packagist.org/packages/dyrynda/vagabond)[ Docs](https://github.com/michaeldyrynda/vagabond)[ RSS](/packages/dyrynda-vagabond/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (6)Dependencies (1)Versions (7)Used By (0)

Vagabond
========

[](#vagabond)

About Vagabond
--------------

[](#about-vagabond)

Vagabond is a project that lets you leverage [Nomad](https://github.com/michaeldyrynda/nomad) - Laravel-style database migrations wherever they may roam.

Nomad gives you the power of Laravel's [database migrations](https://laravel.com/docs/5.5/migrations) without the need for a full Laravel installation.

This is particularly useful where you have multiple applications accessing a single database, but you aren't sure which should be responsible for managing the database schema. By extracting your migrations to a separate repository, you can maintain full version control over your database schema, without worrying about different applications trying to run the migrations on the same database.

In addition, you also have the ability to use those centralised migrations within your application test suite much more easily, without having to either duplicate the migrations or run against your own copy of the database.

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

[](#installation)

In order to create a new Vagabond project, you can use [Composer](https://getcomposer.org).

```
composer create-project --prefer-dist dyrynda/vagabond wanderer

```

Once installed, you will have access to the `nomad` application, a default configuration to work with an sqlite database, and a `VagabondServiceProvider`. You can extend from this service provider to handle automatically loading configuration for each of your connections. All you need to do is define a protected property - `$connectionName` - on the child provider, that corresponds to the connection you are configuring.

Usage
-----

[](#usage)

Out of the box, Vagabond is configured to use a MySQL database in `config/database.php`. As with Laravel, you can [configure your connections](https://laravel.com/docs/5.6/database#configuration) and database drivers of choice, as well as keeping credentials safe in your `.env` file.

To create a migration, use the `make:migration` Nomad command.

```
php nomad make:migration create_travellers_table

```

You can check the status of your run and pending migrations using the `status` command.

```
php nomad migrate:status

```

Any pending migrations can be run using the `migrate` command.

```
php nomad migrate

```

For further information on the available commands and their functions, be sure to check out Laravel's [migration documentation](https://laravel.com/docs/5.5/migrations).

Using Vagabond in Laravel applications
--------------------------------------

[](#using-vagabond-in-laravel-applications)

You can use Vagabond in your Laravel applications by defining and including service providers centrally in one repository, and include them in any applications that need them.

In doing so, your Laravel application will be able to access the migrations and database configuration, making it very simple to use them in your test environment, whilst still managing your production database in a standalone fashion. This also means that your database could be separately versioned and even managed by database administrators independently of your development process.

**Note:** Be sure not to call the `nomad` console application within your Laravel app as it will not run correctly. When ready, you can use the usual Artisan migrate tools.

You'll first want to update your `composer.json` file to reflect a package name relevant to your project by updating the `name` property.

If you're not using [Packagist](https://packagist.org) to share your migrations, you may need to configure a path or vcs repository as well. You can learn more about this in the Composer [repositories documentation](https://getcomposer.org/doc/05-repositories.md#hosting-your-own).

Credits
-------

[](#credits)

Special thanks to [Nuno Maduro](https://twitter.com/enunomaduro) for the work he has done with [Laravel Zero](http://laravel-zero.com), which helped pave the way for me to finally bring this project to life.

Support
-------

[](#support)

You can learn more about this project and how it is used [here](https://dyrynda.com.au/blog/sharing-databases-between-laravel-applications).

If you are having general issues with this package, feel free to contact me on [Twitter](https://twitter.com/michaeldyrynda).

If you believe you have found an issue, please report it using the [GitHub issue tracker](https://github.com/michaeldyrynda/vagabond/issues), or better yet, fork the repository and submit a pull request.

If you're using this package, I'd love to hear your thoughts. Thanks!

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 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 ~17 days

Total

6

Last Release

3004d ago

Major Versions

1.1.0 → 2.0.02018-04-09

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/558441?v=4)[Michael Dyrynda](/maintainers/michaeldyrynda)[@michaeldyrynda](https://github.com/michaeldyrynda)

---

Top Contributors

[![michaeldyrynda](https://avatars.githubusercontent.com/u/558441?v=4)](https://github.com/michaeldyrynda "michaeldyrynda (24 commits)")

### Embed Badge

![Health badge](/badges/dyrynda-vagabond/health.svg)

```
[![Health](https://phpackages.com/badges/dyrynda-vagabond/health.svg)](https://phpackages.com/packages/dyrynda-vagabond)
```

###  Alternatives

[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k116.5M113](/packages/jdorn-sql-formatter)[propel/propel1

Propel is an open-source Object-Relational Mapping (ORM) for PHP5.

8351.6M87](/packages/propel-propel1)[jfelder/oracledb

Oracle DB driver for Laravel

11518.4k](/packages/jfelder-oracledb)

PHPackages © 2026

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