Автоматически генерировать определения модели из существующей базы данных ArangoDB - PullRequest
0 голосов
/ 22 декабря 2018

Я использую ArangoDB 3.4 и планирую использовать MVC-фреймворк, такой как Backbone.js (или любой другой, который рекомендуется).Есть ли способ автоматически сгенерировать модели из существующей базы данных, чтобы уменьшить количество шаблонного кода, который я должен написать вручную?

Например, я смотрю демонстрацию aye-aye TodoMVC.У него есть эта модель:

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, которые помогут автоматизировать это путем создания кода скаффолда?

Возможно, я имею в виду что-то вроде inspectdb команды Python:

inspectdb

Анализирует таблицы базы данных в базе данных, на которую указывает параметр DATABASE_NAME, и выводит модуль модели Django (файл models.py) встандартный вывод.

Используйте это, если у вас есть устаревшая база данных, с которой вы хотите использовать Django.Сценарий проверит базу данных и создаст модель для каждой таблицы в ней.

Как и следовало ожидать, созданные модели будут иметь атрибут для каждого поля в таблице.

Если есть совершенно разные подходы к этому с ArangoDB и javascript, пожалуйста, укажите мне правильное направление.

1 Ответ

0 голосов
/ 22 декабря 2018

django-admin inspectdb [table [table ...]] предназначено для реляционных баз данных, где таблицы имеют схему, и поэтому можно генерировать модель

ArangoDB - это NoSQL с коллекциями без схемы с возможностью хранения различных типов документов JSON, и поэтому вам потребуетсячтобы получить схему для каждого типа документа.

При использовании подхода fullstack javascript вы можете поместить свою модель в модуль js и использовать ее как на передней, так и на задней стороне.

для нас, наиболее надежный и масштабируемый подход основан на Typescript в качестве master с последующим-ish рабочий процесс

  • превратить JSON в TS через VS Расширение кода jsontots

, тогда вы можете

  • сгенерировать JSONСхема с помощью typcript-json-schema
  • создает диаграмму UML с помощью tsviz
  • конвертирует JSON-схему в joi с помощью enjoi
  • создание форм из схемы JSON (специфично для внешней среды)
...