如何在Node.js项目中存储和管理Arango或Neo4j的数据库架构

3
我不知道如何管理模式以使不同环境(开发、测试和生产)具有相同的数据库结构。在部署服务器上,如何定义、存储和更新ArangoDB或Neo4j模式。
我知道SQL数据库的Sequelize实用程序。它具有在不同模式版本之间进行迁移的工具(http://docs.sequelizejs.com/manual/tutorial/migrations.html),以更好地理解我的需求。
2个回答

3

这里有一个抽象的迁移框架:https://github.com/tj/node-migrate

它可以与任何数据库一起使用,因为它允许你执行任何代码并将状态保存到任何位置(默认情况下保存到文件)

以下是我如何为ArangoDB配置它的方法:

npm i migrate --save-dev

package.json中添加脚本

  "scripts": {
    "migrate": "migrate"
  },

创建迁移文件夹

npm run migrate init

创建迁移

npm run migrate create test

将迁移实现替换为

require('dotenv').config();
const arangojs = require('arangojs');

const db = new arangojs.Database({ url: process.env.DB_HOST });

db.useDatabase(process.env.DB_NAME);
db.useBasicAuth(process.env.DB_USERNAME, process.env.DB_PASSWORD);

module.exports.up = async (next) => {
  const collection = db.collection('test');
  await collection.create();
  next();
};

module.exports.down = async (next) => {
  const collection = db.collection('test');
  await collection.drop();
  next();
};

添加到.gitignore文件中

.migrate

运行迁移

npm run migrate up

回滚迁移

npm run migrate down

2
ArangoDB有模式演化工具,分别是migrantverde和它的后继者arangoMigo
ArangoMigo使用Yaml文件来描述模式,而Migrant verde使用XML文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接