davejamesmiller / laravel-migrations-ui
Laravel中创建和运行迁移的基于Web的GUI。
Requires
- php: >=7.1.3
- doctrine/dbal: ^2.0
- laravel/framework: >=5.6
Requires (Dev)
- mockery/mockery: ^1.3
- nunomaduro/collision: ^3.0|^4.1
- orchestra/testbench: >=3.6
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^7.0|^8.0
README
截至2020年4月18日,Laravel Migrations UI已不再维护。
我最初计划构建一个生成迁移的GUI,而不仅仅是运行它们,但这个过程花费了大约18个月(最初的线框图并未最初存放在Git中),并且我认为我不太可能很快回过头来做这件事。
如果您想创建自己的分支来修复错误或添加新功能,请参阅下方的说明。MIT许可证要求您保留版权声明和许可证信息,但除此之外,您可以自由使用代码和文档。
— Dave
Laravel Migrations UI
基于Web的GUI,用于在Laravel中创建(即将推出)和运行迁移。
目录
兼容性图表
Laravel Migrations UI | Laravel | PHP |
---|---|---|
1.0.1+ | 5.6+ | 7.1+ |
1.0.0 | 5.8+ | 7.1+ |
安装
composer require --dev davejamesmiller/laravel-migrations-ui
可选:发布并编辑配置文件(config/migrations-ui.php
)
php artisan vendor:publish --tag=migrations-ui-config
然后访问/migrations
(或您的配置文件中设置的路径)。
出于安全考虑,默认情况下,Migrations UI仅在APP_ENV=local
和APP_DEBUG=true
的情况下激活,或者您在.env
中设置了MIGRATIONS_UI_ENABLED=true
,您不应在生产环境或任何公开可访问的环境中启用它——这将是一个重大的安全漏洞!
贡献
文档:如果您认为文档可以以任何方式改进,请编辑此文件并提交一个pull request。
错误修复:请修复它并提交一个pull request。 (下面有更详细的说明。) 如果您添加了一个单元测试以确保它不会再次发生,那么您将获得加分!
新功能:请构建它并提交一个pull request。如果您在投入太多工作之前想讨论它,请制作一个概念证明(可以是代码或文档)并提交一个草稿PR来讨论细节。
创建pull request
在Laravel Migrations UI上工作的最简单方法是告诉Composer使用--prefer-source
标志从源(Git)安装它
rm -rf vendor/davejamesmiller/laravel-migrations-ui composer install --prefer-source
然后检出master分支并创建一个本地分支来工作
cd vendor/davejamesmiller/laravel-migrations-ui
git checkout -t origin/master
git checkout -b YOUR_BRANCH
现在进行您的更改,包括单元测试和文档(如果适用)。运行单元测试以确保一切仍然正常工作
scripts/test.sh
然后提交更改。如果您还没有,请在GitHub上分叉仓库,并将您的更改推送到它
git remote add YOUR_USERNAME git@github.com:YOUR_USERNAME/laravel-migrations-ui.git git push -u YOUR_USERNAME YOUR_BRANCH
最后,浏览到GitHub上的仓库并创建一个pull request。
(或者,您可以使用测试应用。)
在项目中使用您的分叉
要在项目中使用自己的分叉,按照以下方式更新主项目中的composer.json
{ // ADD THIS: "repositories": [ { "type": "vcs", "url": "https://github.com/YOUR_USERNAME/laravel-migrations-ui.git" } ], "require": { // UPDATE THIS: "davejamesmiller/laravel-migrations-ui": "dev-YOUR_BRANCH" } }
将YOUR_USERNAME
替换为您的GitHub用户名,将YOUR_BRANCH
替换为分支名称(例如develop
)。这将告诉Composer使用您的仓库而不是默认仓库。
单元测试
要运行单元测试
scripts/test.sh
检查代码覆盖率
scripts/test-coverage.sh
然后打开test-coverage/index.html
以查看结果。请注意PHPUnit中的边缘情况,这些情况可能导致结果不够准确。
Laravel的新版本
在composer.json
中没有指定最大版本,因此不需要每6个月发布Laravel Migrations UI的新版本。但是,此文件需要更新,以便针对新版本运行测试
.travis.yml
matrix
(Laravel版本)php
(PHP版本)exclude
(不支持组合)
如果需要,也要更新
如果向后不兼容的更改导致Laravel或PHP的最低支持版本发生变化,请更新
composer.json
php/*
illuminate/*
发布新版本
本节仅适用于维护者。
- 确保单元测试已更新,并且有100%的覆盖率(对于PHP代码)
- 在生产模式下构建资源(
yarn build
),如果有任何更改,请提交 - 如果适用,更新测试应用,并手动测试它
- 确保README是最新的,包括
- 将更改合并到
master
分支(如果需要) - 将代码更改推送到GitHub(
git push
) - 确保所有测试都通过
- 标记发布(
git tag 1.2.3
) - 推送标记(
git push --tag
)
无技术支持
抱歉,我无法提供任何技术支持,GitHub Issues已禁用。这意味着我不会找出为什么它对您不起作用,我不会为您修复错误,也不会根据您的要求编写新功能——毕竟,这是一款免费软件。
但是开源的魅力在于您可以自由地使用它!您可以分叉它,修复它,改进它并扩展它。如果您不想维护自己的分叉,并且认为其他人会从您的更改中受益,您可以提交一个pull request,以便您的更改包含在下一个版本中。
如果你真的遇到了难题,我建议你
- 阅读并反复阅读这个文件以及Laravel 文档,看看你是否漏掉了什么。
- 深入研究源代码,花一些时间弄清楚它是如何工作的以及实际发生了什么。
- 尝试在一个全新的 Laravel 项目中重现问题,以防它是与其他包或你的其他代码不兼容。
- 如果你在一个团队中工作,请你的同事帮助你调试。
- 雇佣一个更有经验的人来帮助你(或者如果你在一个公司工作,请你的老板支付他们)。
- 尝试在Stack Overflow、Laravel.io 论坛或Laracasts 论坛上发帖(但我不能保证有人会回答——他们也没有报酬)。
- 使用不同的包。
- 自己编写。
更新日志
Laravel Migrations UI 使用语义化版本控制。
v1.0.3 (Sat 29 Feb 2020)
- 修复了由于仅在控制台注册而无法获取 Telescope 迁移的问题
- 当任何操作正在运行时,所有按钮都会变灰
v1.0.2 (Sun 23 Feb 2020)
- 改进了对各种边缘情况的处理错误
- 从生产构建中排除了一些不必要的文件
v1.0.1 (Sun 23 Feb 2020)
- 修复了 Laravel 5.6、5.7 的错误(
Collection
类没有join()
方法)
v1.0.0 (Sat 22 Feb 2020)
- 第一个稳定版本
许可证
版权所有 © 2019-2020 Dave James Miller
在此特此授予任何获得本软件及其相关文档文件(“软件”)副本的任何人,在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,源于、源于或与软件或其使用或其他交易有关。