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

时间:2018-12-22 05:39:30

标签: javascript model arangodb todomvc

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

     

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

     

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

     

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

对于我们来说,最可靠和可扩展的方法是基于Typescript作为主资源,具有后续工作流程

  • 通过VS代码扩展jsontots
  • 将JSON转换为TS

那么您可以

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