All Projects → dineug → vuerd-electron

dineug / vuerd-electron

Licence: MIT license
desktop ERD app

Programming Languages

javascript
184084 projects - #8 most used programming language
Vue
7211 projects
HTML
75241 projects

Projects that are alternatives of or similar to vuerd-electron

Dbmate
🚀 A lightweight, framework-agnostic database migration tool.
Stars: ✭ 2,228 (+11040%)
Mutual labels:  database-schema
X6
🚀 JavaScript diagramming library that uses SVG and HTML for rendering.
Stars: ✭ 2,686 (+13330%)
Mutual labels:  erd
introspector
A schema and set of tools for using SQL to query cloud infrastructure.
Stars: ✭ 61 (+205%)
Mutual labels:  database-schema
Fluentmigrator
Fluent migrations framework for .NET
Stars: ✭ 2,636 (+13080%)
Mutual labels:  database-schema
erdantic
Entity relationship diagrams for Python data model classes like Pydantic
Stars: ✭ 63 (+215%)
Mutual labels:  erd
erd
Simplest DSL to draw ER diagrams executable on any environments
Stars: ✭ 37 (+85%)
Mutual labels:  erd
Postguard
🐛 Statically validate Postgres SQL queries in JS / TS code and derive schemas.
Stars: ✭ 104 (+420%)
Mutual labels:  database-schema
django-yamlfield
A Django database field for storing YAML data
Stars: ✭ 31 (+55%)
Mutual labels:  database-schema
Dbeaver
Free universal database tool and SQL client
Stars: ✭ 23,752 (+118660%)
Mutual labels:  erd
schema-voyager
Visualize Datomic schema
Stars: ✭ 15 (-25%)
Mutual labels:  erd
E Commerce Db
Database schema for e-commerce (webstores) sites.
Stars: ✭ 245 (+1125%)
Mutual labels:  database-schema
algorithm-bootcamp-sql
Teaching materials for Algorithm Bootcamp: Database Systems.
Stars: ✭ 18 (-10%)
Mutual labels:  erd
typeorm-uml
Generate Entity Relationship diagrams for Typeorm powered projects.
Stars: ✭ 207 (+935%)
Mutual labels:  erd
Obevo
Obevo is a database deployment tool that handles enterprise scale schemas and complexity
Stars: ✭ 192 (+860%)
Mutual labels:  database-schema
django-concurrency-talk
🎭 Database Integrity in Django: Safely Handling Critical Data in Distributed Systems
Stars: ✭ 49 (+145%)
Mutual labels:  database-schema
Real World Grading App
An example of a real-world REST API backend built with TypeScript, Hapi, Prisma, and PostgreSQL.
Stars: ✭ 105 (+425%)
Mutual labels:  database-schema
ecto erd
A mix task for generating Entity Relationship Diagram from Ecto schemas available in your project.
Stars: ✭ 173 (+765%)
Mutual labels:  erd
sea-schema
🌿 SQL schema management suite
Stars: ✭ 83 (+315%)
Mutual labels:  database-schema
upscheme
Database migrations and schema updates made easy
Stars: ✭ 737 (+3585%)
Mutual labels:  database-schema
drawerd
DrawERD for rails.
Stars: ✭ 19 (-5%)
Mutual labels:  erd

Warning

This project is no longer managed

completely restructured
Please use the vscode extension ERD Editor

Migration Data

const oldData = require("./[oldData].json");
const fs = require("fs");

function createBaseData() {
  return {
    canvas: {
      width: 2000,
      height: 2000,
      scrollTop: 0,
      scrollLeft: 0,
      show: {
        tableComment: true,
        columnComment: true,
        columnDataType: true,
        columnDefault: true,
        columnAutoIncrement: true,
        columnPrimaryKey: true,
        columnUnique: true,
        columnNotNull: true,
        relationship: true
      },
      database: "MySQL",
      databaseName: "",
      canvasType: "ERD",
      language: "graphql",
      tableCase: "pascalCase",
      columnCase: "camelCase"
    },
    memo: {
      memos: []
    },
    table: {
      tables: [],
      edit: null,
      copyColumns: [],
      columnDraggable: null
    },
    relationship: {
      relationships: [],
      draw: null
    }
  };
}

oldData.tabs.forEach(tab => {
  const baseData = createBaseData();
  baseData.canvas.databaseName = tab.name;
  baseData.canvas.width = tab.store.CANVAS_WIDTH;
  baseData.canvas.height = tab.store.CANVAS_WIDTH;
  tab.store.tables.forEach(table => {
    const resultTable = {
      id: table.id,
      name: table.name,
      comment: table.comment,
      ui: {
        active: table.ui.selected,
        top: table.ui.top,
        left: table.ui.left,
        widthName: table.ui.width / 2,
        widthComment: table.ui.width / 2,
        zIndex: table.ui.zIndex
      },
      columns: []
    };
    table.columns.forEach(column => {
      resultTable.columns.push({
        id: column.id,
        name: column.name,
        comment: column.comment,
        dataType: column.dataType,
        default: column.default,
        option: {
          autoIncrement: column.options.autoIncrement,
          primaryKey: column.options.primaryKey,
          unique: column.options.unique,
          notNull: column.options.notNull
        },
        ui: {
          active: column.ui.selected,
          pk: column.ui.pk,
          fk: column.ui.fk,
          pfk: column.ui.pfk,
          widthName: column.ui.widthName,
          widthComment: column.ui.widthComment,
          widthDataType: column.ui.widthDataType,
          widthDefault: 60
        }
      });
    });
    baseData.table.tables.push(resultTable);
  });
  tab.store.lines.forEach(line => {
    baseData.relationship.relationships.push({
      identification: line.isIdentification,
      id: line.id,
      relationshipType: line.type === "erd-0-1-N" ? "ZeroOneN" : "ZeroOne",
      start: {
        tableId: line.points[0].id,
        columnIds: line.points[0].columnIds,
        x: line.points[0].x,
        y: line.points[0].y,
        direction: "top"
      },
      end: {
        tableId: line.points[1].id,
        columnIds: line.points[1].columnIds,
        x: line.points[1].x,
        y: line.points[1].y,
        direction: "top"
      }
    });
  });
  tab.store.memos.forEach(memo => {
    baseData.memo.memos.push({
      value: memo.content,
      id: memo.id,
      ui: {
        active: memo.ui.selected,
        top: memo.ui.top,
        left: memo.ui.left,
        width: memo.ui.width,
        height: memo.ui.height,
        zIndex: memo.ui.zIndex
      }
    });
  });

  fs.writeFile(
    `./convert-${new Date().getTime()}.vuerd.json`,
    JSON.stringify(
      baseData,
      (key, value) => {
        return value;
      },
      2
    ),
    err => {
      if (err) {
        console.log(err);
      }
    }
  );
});

console.log("END");

vuerd

logo

use
use

vuerd-electron

ERD

start

$ yarn
$ yarn dev

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].