【问题标题】:Auto-generate model definitions from existing ArangoDB database从现有的 ArangoDB 数据库自动生成模型定义
【发布时间】:2018-12-22 05:39:30
【问题描述】:

我正在使用 ArangoDB 3.4 并计划使用像 Backbone.js(或任何推荐的)这样的 MVC 框架。有没有办法从现有数据库中自动生成模型以减少我必须手动编写的样板代码量?

例如,我正在查看aye-aye TodoMVC demo。它有这个模型:

const joi = require('joi');

exports.Model = {
  _key: joi.string().optional(),
  _id: joi.string().optional(),
  _rev: joi.string().optional(),
  completed: joi.boolean().optional(),
  order: joi.number().optional(),
  title: joi.string().optional()
};

手写几个没问题。我的数据库最终将需要许多这些模型。是否有任何工具可以与 ArangoDB 一起使用,通过生成脚手架代码来帮助实现自动化?

我想到的可能类似于 Python 的 inspectdb 命令:

检查数据库

检查 DATABASE_NAME 设置指向的数据库中的数据库表,并将 Django 模型模块(models.py 文件)输出到标准输出。

如果您有想要使用 Django 的旧数据库,请使用此选项。该脚本将检查数据库并为其中的每个表创建一个模型。

如您所料,创建的模型将为表中的每个字段提供一个属性。

如果使用 ArangoDB 和 javascript 有完全不同的方法,请指出正确的方向。

【问题讨论】:

    标签: javascript model arangodb todomvc


    【解决方案1】:

    django-admin inspectdb [table [table ...]] 的目标是关系数据库,其中表具有架构,因此可以生成模型

    ArangoDB 是具有无模式集合的 NoSQL,能够存储各种 JSON 文档类型,因此您需要获取每种文档类型的模式。

    在使用全栈 javascript 方法时,您可以将模型放在 js 模块中,并在前端和后端使用它。

    对我们来说,最可靠和可扩展的方法是基于 Typescript 作为 master 并具有以下工作流

    • 通过 VS 代码扩展 json2ts.com 将 JSON 转换为 TS

    那么你可以

    • 通过typescript-json-schema生成JSON Schema
    • tsviz生成UML图
    • 使用enjoi 将 JSON Schema 转换为 joi
    • 从 JSON 模式生成表单(特定于前端框架)

    【讨论】:

    • 哪些前端框架与该方法兼容?我的经验为零,所以我会使用推荐的任何东西。我使用 Atom 编辑器。这是一个很好的指南吗? blog.wolksoftware.com/working-with-react-and-typescript
    • 任何 FE FW 都将与该方法兼容,就像任何 FW 都会有优缺点一样。几年前我开始使用 Angular,因为它有最好的生态系统,插件涵盖所有需求,但学习曲线陡峭,插件没有保持最新,语法不自然,认知负荷高。 React、Vue 混合了 html、js 和 css,这将你锁定在他们的道路上,同时失去了诸如战斗证明的 html、sass 方法和工具之类的东西。这就是我们使用 Aurelia 的原因。尝试一些 FW 并选择你觉得自然的东西。作为 IDE,我推荐 VS Code,因为它更快、更智能并且
    • 我相信你的意思是 json2ts,而不是 jsontots:json2ts.com
    • 嗨@AviNerenberg,感谢您更正链接,我确实更新了答案,不确定它在 2018 年是否正常运行,或者是否是错字...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 2012-07-01
    • 2012-05-18
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多