en0ma / rumble
一个DynamoDB迁移工具
Requires
- aws/aws-sdk-php: 2.*
- symfony/console: ^3.2
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-29 03:04:55 UTC
README
一个用于AWS DynamoDB的PHP迁移工具。
要求
要使用rumble进行迁移和种子操作,您必须在本地安装aws dynamodb或者为特定aws区域中的远程版本提供有效的aws凭证。
披露
rumble与现有的其他迁移工具相比,功能还远未完善。未来将添加更多功能。
命名规范
由于rumble还处于初级阶段,它不能自动生成迁移或种子文件。您必须手动创建迁移和种子文件。迁移和种子文件应放在项目根目录下的migrations和seeds目录中。
迁移或种子文件必须使用下划线(_)分隔组成文件名的每个单词。例如:create_app_records_table.php是迁移或种子文件的有效文件名。
虽然文件名使用下划线(_)命名风格,但creat_app_records_table.php文件的类名使用Pascal命名风格。即组成文件名的每个单词的首字母必须大写,例如:CreateAppRecordsTable。
类定义
- 迁移:您创建的每个迁移文件(类)都必须扩展
rumble的Migration类,并且必须定义一个up方法。 - 种子:您创建的每个种子文件(类)都必须扩展
rumble的Seeder类,并且必须定义一个seed方法。
使用Rumble
- 迁移:要迁移文件,从项目的根目录运行
rumble migrate。例如:vendor/bin/rumble migrate - 种子:要播种文件,从项目的根目录运行
rumble seed。例如:vendor/bin/rumble seed
支持的DynamoDB功能
目前,rumble仅支持以下DynamoDB功能;
- 创建表
- 更新表
- 删除表
- 添加项
- 批量写入项
教程 - 创建新表
以下代码示例显示了使用rumble创建DynamoDB表所需的最小参数。这是从迁移文件(create_app_records_table.php)的up方法中提取的。每个迁移文件都必须实现up方法。
<?php use Rumble/Migration; class CreateAppRecordsTable extends Migration { public funtion up() { $table = $this->table('app_records'); //table name $table->addAttribute('app_uid', 'S'); //primary key data type - String(S) $table->addHash('app_uid'); //primary key $table->setWCU(10); //Write Capacity Unit (Provisioned write throughPut) $table->setRCU(10); //Read Capacity Unit (Provisioned read throughPut) $table->create(); //create table } }
教程 - 种子表
以下示例代码显示了种子DynamoDB表(上面创建的示例)所需的最小参数。这是从种子文件(app_records_seeder.php)的seed方法中提取的。每个种子文件都必须实现seed方法。
<?php use Rumble/Seeder; class AppRecordsTableSeeder extends Seeder { public function seed() { $table = $this->table('app_records'); $table->addItem(['app_uid' => 'x435-n956-00jX-u2fX', 'uninstall' => ['reason' => 'Still thinking of one.']); $table->addItem(['app_uid' => '944-jjU0-o0Hi-y4hh4', 'events' => ['action' => 'click', 'date' => '2017-04-10']]); $table->save(); } }
数据库配置
rumble使用一个名为rumble.php的文件作为其配置文件。您必须在该项目的根目录下创建此文件。此文件必须返回一个包含您DynamoDB配置的数组。例如:
<?php return [ 'region' => '', 'key' => '', 'secret' => '', 'endpoint' => '' ];