hhpack / migrate
Hack的轻量级迁移工具
2.2.1
2019-04-20 12:29 UTC
Requires
- hhvm: >= 3.21.0
- hhpack/color: ^1.3
- hhpack/getopt: ^1.7
- hhpack/publisher: ^1.3
- hhvm/hhvm-autoload: ^2.0
- hhvm/type-assert: ^3.3
Requires (Dev)
- facebook/fbexpect: ^2.5
- hhvm/hacktest: ^1.5
This package is auto-updated.
Last update: 2024-09-21 00:03:45 UTC
README
基本用法
首先将配置文件的database.json放置在config目录下。
请参考以下设置。
- type - 迁移类型,仅支持SQL基础。
- path - 迁移文件所在的目录。
- enviroments - 环境的数据库连接设置。
{ "type": "sql", "path": "db/migrate", "enviroments": { "development": { "host": "localhost", "port": 3306, "name": "migrate", "user": { "ENV": "DB_USERNAME" }, "password": { "ENV": "DB_PASSWORD" } } } }
创建数据库
您可以运行创建命令来创建数据库。
vendor/bin/migrate create
生成迁移文件
使用gen命令来生成迁移文件。
vendor/bin/migrate gen create-users
模式升级
使用up命令来升级模式。
您可以通过指定--to
选项升级到特定版本。
vendor/bin/migrate up
或者
vendor/bin/migrate up --to=20150824010439-create-users
模式降级
要降级到指定版本,请使用down命令。
vendor/bin/migrate down 20150824010439-create-users
模式重置
恢复所有应用过的迁移。
vendor/bin/migrate reset
删除数据库
您可以使用以下命令删除数据库。
vendor/bin/migrate drop
迁移器
当前版本支持基于SQL的迁移。
use HHPack\Migrate\Migrator; use HHPack\Migrate\SqlMigrationLoader; use HHPack\Migrate\DatabaseClient; $mysql = await DatabaseClient::createConnection('mysql:dbname=migrate;port=3306', 'migrate', 'migrate'); $loader = new SqlMigrationLoader(__DIR__ . '/sql/migrations'); $migrator = new Migrator($loader, $mysql); await $migrator->upgrade();
模式降级
use HHPack\Migrate\Migrator; use HHPack\Migrate\SqlMigrationLoader; use HHPack\Migrate\DatabaseClient; $mysql = await DatabaseClient::createConnection('mysql:dbname=migrate;port=3306', 'migrate', 'migrate'); $loader = new SqlMigrationLoader(__DIR__ . '/sql/migrations'); $migrator = new Migrator($loader, $mysql); await $migrator->downgrade('20150825102100-create-posts');
运行测试
-
创建数据库
CREATE USER 'migrate'@'localhost' IDENTIFIED BY 'migrate';
-
创建用户
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON migrate.* TO 'migrate'@'localhost';
-
执行单元测试
您可以使用以下命令运行测试。
composer install composer test