引力子/迁移工具包

一个控制台应用程序,用于为基于引力子的服务生成迁移

v0.5.1 2017-11-07 10:12 UTC

This package is auto-updated.

Last update: 2024-09-17 20:33:12 UTC


README

Build Status Latest Stable Version Docker Pulls Docker Automated Docker Build

这是一个 Symfony 控制台应用程序,提供有关生成和迁移基于 引力子 的服务和服务定义的实用工具。

当我们生成迁移时,我们生成可以与 doesntmattr/mongodb-migrations 一起使用的类。

当前状态

这是一个相当新的项目,生成迁移并非易事。

migrationkit 已经以可扩展的方式设计,因此我们可以轻松添加新的迁移场景。

用法

推荐的做法是使用我们的 Docker 镜像。它可在 Docker Hub 上找到,因此您可以立即使用它。

Docker

您可以非常容易地执行该工具

docker run --rm graviton/migrationkit

您应该会看到带有命令列表的帮助屏幕。

要执行给定命令,只需将其添加到 run

docker run --rm graviton/migrationkit graviton:migrations:generate --help

请随意用 Docker Compose 包装它。

解决用户权限问题

我们的 Docker 镜像包含一些解决用户权限问题的支持,因为它应该在您的本地磁盘上生成资源。

该镜像包含环境变量 PUIDPGID,您应将其设置为拥有目标目录的 local user 的 UID 和 GID。

您可以通过发出 id 命令找到 UID 和 GID

user@host:~$ id
uid=1000(user) gid=1000(user) groups=1000(user),...

一旦您知道了这些,就在 run 上设置它们

docker run --rm -e PUID=1000 -e PGID=1000 graviton/migrationkit graviton:migrations:generate --help

这应该解决所有权限问题。

Composer

如果您真的想在项目环境中使用它,可以使用 composer

composer require --dev graviton/migrationkit

这真的应该是一个 dev 依赖项,用于您的项目。

命令

graviton:version-migrations:generate

从您的当前分支生成到另一个分支的迁移,并生成迁移

假设传递给 baseDir 的目录是一个 Git 仓库。然后它复制该目录,切换到由参数 branch 定义的标签/分支,并使用这两个目录调用 graviton:migrations:generate 命令,从而允许您生成两个(可能是未推送到)分支之间的差异。

人们可以拉取 develop,创建一个功能分支,进行更改,然后使用 develop 作为比较分支调用此命令。

graviton:fixture-entity:generate

根据服务定义生成随机 JSON 有效负载实体

这是一个用于迁移的辅助命令。它接受服务定义并生成 number(参数)个文件(默认 10)的随机假 JSON 有效负载,可以将其 PUT/POST 到引力子实例。

它们符合指定的服务定义,并包含所有指定的字段。

请注意,这些假数据有效负载可能对想要从结构中理解/执行业务操作的应用程序没有意义。

refMap 文件

为了生成有效的 extref 字段,您可能需要指定一个 refMap 文件(命令的 --refMap 选项)。

这是一个简单的 YAML 文件,将字段的 Collection 属性映射到一个 URL。

示例

App: /core/app/
MyOtherEntity: /other/entity/

graviton:definition-metadata:generate

从服务定义生成 YML 元数据文件

在内部,migrationkit 使用简单的 YAML 文件来完成操作。这个命令有助于生成这些文件。例如,您需要这些文件来执行 graviton:fixture-entity:generate 命令。

graviton:from-ios-schema:generate

从 iOS 模式生成服务定义

这个功能满足了一些用户的需求,他们需要从专有的 iOS 模式格式生成与 Graviton 兼容的服务定义。

graviton:migrations:generate

这是一个低级别的迁移命令,允许您指定两个目录并在它们之间进行迁移。

允许您指定两个目录并从中生成迁移文件。它会提示您可能的冲突,您可能需要提供输入来解决它们。