0.3.12-0 • Published 7 years ago

sql-schema-builder v0.3.12-0

Weekly downloads
21
License
MIT
Repository
github
Last release
7 years ago

SQL Schema Builder (alpha)

Currently only PostgreSQL supported.

Installation

npm install sql-schema-builder

Usage

var Builder = require("./index");

var Table = Builder.Table;
var Column = Builder.Column;
var ForeignKey = Builder.ForeignKey;
var Type = Builder.Type;

// build
var Group = Table("Group").add(
Column("id", Type.UUID).primaryKey(),
Column("name", Type.VARCHAR(64)).notNull()
);

var User = Table("User").add(
Column("id", Type.UUID).primaryKey(),
Column("name", Type.VARCHAR(64)).notNull(),
Column("about", Type.JSON).notNull()
    .default({"info": "", "bulletPoints": []}),
Column("emails", Type.JSON).notNull()
    .default([]),
Column("createdAt", Type.TIMESTAMPTZ).notNull(),
Column("modifiedAt", Type.TIMESTAMPTZ).notNull(),
Column("group", Type.UUID),
ForeignKey("group", Group, "id")
);

// stringify
console.log(Group.toSql());
console.log(User.toSql());

Will output:

CREATE TABLE "Group" (
    "id" UUID PRIMARY KEY,
    "name" VARCHAR(64) NOT NULL
);
CREATE TABLE "User" (
    "id" UUID PRIMARY KEY,
    "name" VARCHAR(64) NOT NULL,
    "about" JSON NOT NULL DEFAULT '{"info":"","bulletPoints":[]}',
    "emails" JSON NOT NULL DEFAULT '[]',
    "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL,
    "modifiedAt" TIMESTAMP WITH TIME ZONE NOT NULL,
    "group" UUID,
    FOREIGN KEY ("group") REFERENCES "Group" ("id")
);
0.3.12-0

7 years ago

0.3.11

10 years ago

0.3.10

10 years ago

0.3.9

10 years ago

0.3.8

10 years ago

0.3.7

10 years ago

0.3.6

10 years ago

0.3.5

10 years ago

0.3.4

10 years ago

0.3.3

10 years ago

0.3.2

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.1

10 years ago

0.2.1-0

10 years ago

0.2.0

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago