dyrynda / vagabond
无家可归的Eloquent
Requires
- php: >=7.0.0
Requires (Dev)
- dyrynda/nomad: ^1.1
README
关于Vagabond
Vagabond是一个项目,让您能够利用Nomad - Laravel风格的数据库迁移,无论它们在哪里。
Nomad让您能够获得Laravel的数据库迁移的功能,无需安装完整的Laravel。
这在您有多个应用程序访问单个数据库,但不确定哪个应该负责管理数据库模式时特别有用。通过将迁移提取到单独的存储库中,您可以完全控制数据库模式版本控制,而不用担心不同的应用程序试图在同一个数据库上运行迁移。
此外,您还可以更轻松地在使用应用程序测试套件中使用这些集中式迁移,而无需复制迁移或运行自己的数据库副本。
安装
要创建新的Vagabond项目,您可以使用Composer。
composer create-project --prefer-dist dyrynda/vagabond wanderer
安装后,您将能够访问nomad
应用程序,默认配置以与sqlite数据库一起工作,以及一个VagabondServiceProvider
。您可以扩展此服务提供程序来自动加载每个连接的配置。您需要做的只是定义子提供程序上的一个受保护属性 - $connectionName
,它与您正在配置的连接相对应。
用法
默认情况下,Vagabond配置为在config/database.php
中使用MySQL数据库。与Laravel一样,您可以配置您的连接和数据库驱动程序,同时在.env
文件中安全地存储凭据。
要创建迁移,请使用Nomad的make:migration
命令。
php nomad make:migration create_travellers_table
您可以使用status
命令检查运行中和挂起的迁移的状态。
php nomad migrate:status
您可以使用migrate
命令运行任何挂起的迁移。
php nomad migrate
有关可用命令及其功能的更多信息,请务必查看Laravel的迁移文档。
在Laravel应用程序中使用Vagabond
您可以通过在单个存储库中定义和包含服务提供程序来在Laravel应用程序中使用Vagabond,并将它们包含在任何需要它们的任何应用程序中。
这样做后,您的Laravel应用程序将能够访问迁移和数据库配置,这使得在测试环境中使用它们变得非常简单,同时仍然以独立的方式管理生产数据库。这也意味着您的数据库可以独立版本化,甚至可以由数据库管理员独立于开发过程进行管理。
注意:请确保不要在您的Laravel应用程序中调用nomad
控制台应用程序,因为它将无法正确运行。准备就绪后,您可以使用通常的Artisan迁移工具。
首先,您需要更新您的composer.json
文件,通过更新name
属性来反映与您的项目相关的包名称。
如果您没有使用Packagist来共享迁移,可能还需要配置路径或版本控制库。您可以在Composer的仓库文档中了解更多信息。
致谢
特别感谢Nuno Maduro在Laravel Zero项目上的工作,这帮助我为最终实现这个项目铺平了道路。
支持
您可以在这里了解更多关于这个项目和它的使用信息。
如果您在使用这个包时遇到一般性问题,请随时通过Twitter联系我。
如果您认为您发现了一个问题,请使用GitHub问题跟踪器报告,或者更好的是,fork仓库并提交一个pull请求。
如果您在使用这个包,我很想听听您的想法。谢谢!