8.7.4 • Published 7 years ago

apemandb v8.7.4

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

apemandb

Build Status Code Climate Code Coverage npm Version JS Standard

Database for apeman project.

apemandb is thin wrapper of Sequelize, and optimized for apeman web apps.

Installation

$ npm install apemandb --save

Setup

Create Configuration File.

Use apemanenv to configure for each environment.

  1. Create database.json in env directory
  2. Exports env directory with apemanenv

env/database.json

{
  "default": {
    "DIALECT": "mysql",
    "SCHEMA": "apeman-demo-web",
    "PORT": 3306,
    "HOST": "localhost",
    "USERNAME": "apeman-demo-web",
    "PASSWORD": "apeman-demo-web"
  },
  "production": {
    "SCHEMA": "apeman-demo-web",
    "USERNAME": "xxxxxxxxxx",
    "PASSWORD": "xxxxxxxxxx"
  },
  "development": {
    "SCHEMA": "apeman-demo-web_dev",
    "USERNAME": "apeman-demo-web_dev",
    "PASSWORD": "apeman-demo-web_dev"
  },
  "test": {
    "DIALECT": "sqlite",
    "SCHEMA": "apeman-demo-web_test",
    "USERNAME": "apeman-demo-web_test",
    "PASSWORD": "apeman-demo-web_test",
    "STORAGE": "tmp/test-database.db"
  }
}

env/index.js

'use strict'

const apemanenv = require('apemanenv')

module.exports = apemanenv(__dirname) // Exports all settings in dir.

Define Model

Create <model_name>.json at db/models directory

db/models/user.json

{
  "$name": "ExampleModel",
  "$description": "Some example",
  "$inherits": [
    "apemandb/models/abstract/ap_keyed.json"
  ],
  "$attributes": {
    "username": {
      "$type": "STRING",
      "$unique": true
    },
    "introText": {
      "$type": "STRING(1024)",
      "$nullable": true
    },
    "profileData": {
      "$type": "TEXT",
      "$convert": {
        "$json": true
      }
    }
  },
  "$indices": []
}

Exports Database module

Create database instance from env and models

db/index.js

'use strict'

const apemandb = require('apemandb')

let db = apemandb({
  env: require('../env')('database'),
  models: `${__dirname}/models/*.json`,
  addons: `${__dirname}/addons/*.addon.js`,
  seeds: `/seeds/${process.env.NODE_ENV}/*.seed.js`
})

// Models are exposed as db.models.<ModelName> (like db.models.User)
module.exports = db

Usage

Basic usage is same as Sequelize Models

Create a New Record

'use strict'

const db = require('./db')
let { User } = db.models

User.create({
  username: 'John'
}).then((result) => {
  /* ... */
})

License

This software is released under the MIT License.

Links

8.7.4

7 years ago

8.7.3

7 years ago

8.7.2

7 years ago

8.7.1

7 years ago

8.7.0

7 years ago

8.6.3

7 years ago

8.6.2

7 years ago

8.6.1

7 years ago

8.6.0

7 years ago

8.5.1

7 years ago

8.5.0

7 years ago

8.3.3

7 years ago

8.3.2

7 years ago

8.3.1

7 years ago

8.3.0

7 years ago

8.2.1

8 years ago

8.2.0

8 years ago

8.1.7

8 years ago

8.1.6

8 years ago

8.1.5

8 years ago

8.1.4

8 years ago

8.1.3

8 years ago

8.1.2

8 years ago

8.1.1

8 years ago

8.0.4

8 years ago

8.0.3

8 years ago

8.0.2

8 years ago

8.0.1

8 years ago

8.0.0

8 years ago

7.1.13

8 years ago

7.1.12

8 years ago

7.1.11

8 years ago

7.1.10

8 years ago

7.1.9

8 years ago

7.1.8

8 years ago

7.1.7

8 years ago

7.1.6

8 years ago

7.1.5

8 years ago

7.1.4

8 years ago

7.1.3

8 years ago

7.1.2

8 years ago

7.1.1

8 years ago

7.1.0

8 years ago

7.0.1

8 years ago

7.0.0

8 years ago

6.0.3

8 years ago

6.0.2

8 years ago

6.0.1

8 years ago

6.0.0

8 years ago

5.0.2

8 years ago

5.0.1

8 years ago

5.0.0

8 years ago

3.3.3

8 years ago

3.3.2

8 years ago

3.3.1

8 years ago

3.3.0

8 years ago

3.2.10

8 years ago

3.2.9

8 years ago

3.2.8

8 years ago

3.2.7

8 years ago

3.2.6

8 years ago

3.2.5

8 years ago

3.2.4

8 years ago

3.2.3

8 years ago

3.2.2

8 years ago

3.2.1

8 years ago

3.2.0

8 years ago

3.1.2

8 years ago

3.1.1

8 years ago

3.1.0

8 years ago

3.0.0

8 years ago

2.9.1

8 years ago

2.9.0

8 years ago

2.8.0

8 years ago

2.7.5

8 years ago

2.7.4

8 years ago

2.7.3

8 years ago

2.7.2

8 years ago

2.7.1

8 years ago

2.7.0

8 years ago

2.6.0

8 years ago

2.5.2

8 years ago

2.5.1

8 years ago

2.5.0

8 years ago

2.3.1

8 years ago

2.3.0

8 years ago

2.2.1

8 years ago

2.2.0

8 years ago

2.1.8

8 years ago

2.1.7

8 years ago

2.1.6

8 years ago

2.1.5

8 years ago

2.1.4

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

8 years ago

2.0.5

8 years ago

2.0.4

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.2.2

9 years ago

1.2.1

9 years ago

1.2.0

9 years ago

1.1.4

9 years ago

1.1.2

9 years ago

1.1.1

9 years ago

1.1.0

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago