引力子/导入导出

该软件包已弃用,不再维护。没有建议的替代软件包。

工具,用于通过 REST 导入和导出引力子数据。

v3.1.0 2021-09-02 06:44 UTC

README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads License

简单的引力子客户端,帮助导入和导出数据。

安装

composer require graviton/import-export

使用方法

获取帮助

./vendor/bin/graviton-import-export help

这将显示所有可用的命令。

通过 REST(使用 HTTP 接口)将数据加载到引力子实例

从目录加载

./vendor/bin/graviton-import-export graviton:import http://localhost:8000 ./test/fixtures

将数据加载到引力子实例的核心数据库中

除了通过 HTTP 接口加载数据外,还有 核心 命令可供使用,允许您将数据加载到引力子实例的数据库后端(MongoDB)中。

您可以通过 graviton:core:import 命令导入一组现有文件

./vendor/bin/graviton-import-export graviton:core:import ./test/data

核心 命令的文件格式与正常导入格式略有不同,因为我们需要保留某些类类型。因此,最好是将数据插入到 MongoDB 中,并将其导出为必要的格式。这可以使用导出命令完成

./vendor/bin/graviton-import-export graviton:core:export ./test/dump-dir

这将转储默认数据库中的所有数据。graviton:core:export 有更多选项,请参阅 --help 输出以获取更多详细信息。

此外,我们还有一个 清除 命令,允许您轻松地清除 MongoDB 数据库中所有集合。您需要传递 'yes' 作为唯一参数,表示您确定该操作。

./vendor/bin/graviton-import-export graviton:core:purge yes

文件格式

要加载的文件必须包含带有额外 yaml frontmatt(yo dawg...)的 yaml。

frontmatter 部分定义了文件应加载到的目标路径。

---
target: /core/app/test
---
{ "id": "test", "name": { "en": "Test" }, "showInMenu": true, "order": 100 }

将文件导入到 /file/

  • 文件不能被覆盖,尝试使用工具更新文件集会引发错误。

例如,对于文件上传,即 swisscom.png 以及要添加到文件集的附加链接

--- 
target: /file/swisscom 
file: swisscom.png 
--- 
id: swisscom 
links: 
    - 
      type: "accountType" 
      $ref: "http://localhost/entity/code/accountType-1" 

验证文件

文件不是原生 YML 或 JSON 文件,因此您可以使用此命令轻松检查它们是否正确。

php ./bin/graviton-import-export graviton:validate:import /{full path to}/initialdata/data/

您还可以直接检查任何子文件夹。输出(错误示例)

Validation will be done for: 60047 files 
 60047/60047 [============================] 100%
Finished

With: 1 Errors
/initialdata/data/param/0_general/event/action/error_file.yml: Malformed inline YAML string ("error_file) at line 1 (near "id: "error_file").

“put”导入的认证和头信息

某些端点可能需要基本认证或某些 cookie 或头信息。可以使用 -a 和 -c 结合使用。

-a is for "basic auth", this will do a base 64 encode header. -a{user:passw}
-c is for Customer Header(s), -c{key:value}  just add more if needed, -c is array enabled.
php ./bin/graviton-import-export graviton:import http://... /{full path to}/initialdata/data/ -ajohn:doe -cheader1:value1 -cheader2:value2

构建 Docker 运行时

docker build -t graviton/import-export .

Docker 运行时

docker run --rm -ti -v `pwd`:/data graviton/import-export

构建phar包

运行phar构建

composer build

部署phar主机

cf push <name-of-host>

或者使用deploy-scripts以自动化蓝绿方式部署。

待办

  • 实现导入器
  • 实现导出器
  • 构建phar
  • 部署phar
  • 自动化phar部署
  • 文档化phar使用