从现有的 ArangoDB 数据库自动生成模型定义

Auto-generate model definitions from existing ArangoDB database

我正在使用 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 命令:

inspectdb

Introspects the database tables in the database pointed-to by the DATABASE_NAME setting and outputs a Django model module (a models.py file) to standard output.

Use this if you have a legacy database with which you'd like to use Django. The script will inspect the database and create a model for each table within it.

As you might expect, the created models will have an attribute for every field in the table.

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

django-admin inspectdb [table [table ...]] 针对表具有模式的关系数据库,因此可以生成模型

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

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

对我们来说,最可靠和可扩展的方法是基于 Typescript 作为主要工作流程

那么你可以

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