en0ma/rumble

一个DynamoDB迁移工具

v3 2017-04-21 13:33 UTC

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还处于初级阶段,它不能自动生成迁移或种子文件。您必须手动创建迁移和种子文件。迁移和种子文件应放在项目根目录下的migrationsseeds目录中。

迁移或种子文件必须使用下划线(_)分隔组成文件名的每个单词。例如:create_app_records_table.php是迁移或种子文件的有效文件名。

虽然文件名使用下划线(_)命名风格,但creat_app_records_table.php文件的类名使用Pascal命名风格。即组成文件名的每个单词的首字母必须大写,例如:CreateAppRecordsTable

类定义

  • 迁移:您创建的每个迁移文件(类)都必须扩展rumbleMigration类,并且必须定义一个up方法。
  • 种子:您创建的每个种子文件(类)都必须扩展rumbleSeeder类,并且必须定义一个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' => ''
 ];