Skip to content

mayajs/sql

Repository files navigation

SQL Decorators and Modules

Installation

  • Install Mayajs Sql plugin
npm i @mayajs/sql
  • Install Sequelize. Mayajs uses sequelize as an ORM.
npm install --save sequelize

You'll also have to manually install the driver for your database of choice:

# One of the following:
$ npm install --save pg pg-hstore # Postgres
$ npm install --save mysql2
$ npm install --save mariadb
$ npm install --save sqlite3
$ npm install --save tedious # Microsoft SQL Server

Sql

This will creates a MySql Database that will be consume on AppModule class. It accepts an object of settings for mysql connection. This database will be consume by Mayajs in compilation and automatically connects the database when the start function is called.

Import

import { Sql } from "@mayajs/sql";

Implementation

Sql({
  name: "database-name",
  options: {
    database: "sql-database",
    username: "sql-username",
    password: "sql-password",
    options: {
      host: "localhost",
      dialect: "mysql" /* one of 'mariadb' | 'postgres' | 'mssql' */,
    },
  },
  schemas: [
    sample, // Sequelize Schema here
  ],
});

Adding Sql on App Decorator

import Sql from "./databases/sql";

@App({
  databases: [Sql],
})
export class AppModule {}

Schema

An interface for table fields. Can be used when creating tables for type checking. Every Schema is an object of fields. Each field has its type and options.

Import

import { Schema } from "@mayajs/sql";

Implementation

import { DataTypes } from "sequelize";
import { SqlModel } from "@mayajs/sql";

const schema = {
  name: {
    type: DataTypes.STRING,
    allowNull: false,
  },
};

export default SqlModel("User", schema, {});

Examples

Check out live examples for more info.

Collaborating

See collaborating guides here.

People

Author and maintainer Mac Ignacio

About

MayaJS SQL Decorators and Modules

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •