turanct / bdsm
BDSM执行简单的迁移
Requires
- symfony/console: ^2.7.3
Requires (Dev)
- phpunit/phpunit: ^4.8.6
- zerkalica/phpcs: dev-master
This package is auto-updated.
Last update: 2024-08-28 23:29:48 UTC
README
这是一个非常简单的迁移库。目前它并不建议在生产环境中使用,但如果你真的想用,也没人能阻止你。使用风险自负。
使用方法
安装
安装很简单,只需在你的composer.json
文件中将turanct/bdsm
作为一个开发依赖项,并配置一个bin-dir
。当你运行composer install
时,bdsm可执行文件将在你的bin目录中可用。
{ "require-dev": { "turanct/bdsm": "dev-master" }, "config": { "bin-dir": "bin" } }
引导
bdsm可执行文件期望在项目的当前工作目录中有一个.bdsm.php
文件。在这个文件中,你可以执行所有必要的引导操作。它只需要返回一个包含以下元素的数组
- 我们可以找到迁移的目录
- 我们可以记录我们运行了哪些迁移的文件
- 一个实现了真正简单
Bdsm\Database
接口的数据库适配器
<?php use Bdsm\Database; final class MyDatabaseAdapter implements Database { public function query($query) { var_dump($query); } } return array( __DIR__ . '/migrations', __DIR__ . '/.bdsm.log.json', new MyDatabaseAdapter(), );
在这种情况下,我们提供了一个名为migrations
的目录,其中迁移将存放,以及一个名为.bdsm.log.json
的日志文件,系统可以将日志记录到这个文件中。在这个示例中,数据库适配器实际上不会连接到数据库,但它会打印出每个发出的查询。
第一个迁移
我们现在可以创建第一个迁移了!使用带有create
参数的bdsm
命令。
$ bin/bdsm create
Migration "Migration1441375998" created...
你还可以传递一个自定义的迁移名称作为参数。我们的迁移目录中将会创建一个新的迁移文件,其内容如下
<?php use Bdsm\Migration; use Bdsm\Database; final class Migration1441375998 implements Migration { public function up(Database $database) { } public function down(Database $database) { } }
现在我们可以简单地编写迁移的up和down操作,然后检查其状态。它应该是红色的。
$ bin/bdsm status ✘ Migration1441375998
运行它就像bdsm up Migration1441375998
一样简单。请注意,你可以使用不带参数的bdsm up
来运行所有迁移。
$ bin/bdsm up Migration1441375998
Do you want to migrate UP migration Migration1441375998? (Y/n)
Migrated...
再次查看迁移状态,我们发现我们已经成功!
$ bin/bdsm status ✔︎ Migration1441375998
向下迁移的过程与向上迁移相同,只是使用down
而不是up
命令。
测试
BDSM有单元测试,位于tests
目录中。这些测试使用phpunit编写。要运行它们,请确保你执行了composer install
并运行了phpunit。
$ sbin/phpunit
贡献
随时fork并发送pull请求!
许可证
这个库是MIT许可证。也请参阅LICENSE.md