8.7.4 • Published 8 years ago

apemandb v8.7.4

Weekly downloads
10
License
MIT
Repository
github
Last release
8 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

8 years ago

8.7.3

8 years ago

8.7.2

8 years ago

8.7.1

8 years ago

8.7.0

9 years ago

8.6.3

9 years ago

8.6.2

9 years ago

8.6.1

9 years ago

8.6.0

9 years ago

8.5.1

9 years ago

8.5.0

9 years ago

8.3.3

9 years ago

8.3.2

9 years ago

8.3.1

9 years ago

8.3.0

9 years ago

8.2.1

9 years ago

8.2.0

9 years ago

8.1.7

9 years ago

8.1.6

9 years ago

8.1.5

9 years ago

8.1.4

9 years ago

8.1.3

9 years ago

8.1.2

9 years ago

8.1.1

9 years ago

8.0.4

9 years ago

8.0.3

9 years ago

8.0.2

9 years ago

8.0.1

9 years ago

8.0.0

9 years ago

7.1.13

9 years ago

7.1.12

9 years ago

7.1.11

9 years ago

7.1.10

9 years ago

7.1.9

9 years ago

7.1.8

9 years ago

7.1.7

9 years ago

7.1.6

9 years ago

7.1.5

9 years ago

7.1.4

9 years ago

7.1.3

9 years ago

7.1.2

9 years ago

7.1.1

9 years ago

7.1.0

9 years ago

7.0.1

9 years ago

7.0.0

9 years ago

6.0.3

9 years ago

6.0.2

9 years ago

6.0.1

9 years ago

6.0.0

9 years ago

5.0.2

9 years ago

5.0.1

9 years ago

5.0.0

9 years ago

3.3.3

9 years ago

3.3.2

9 years ago

3.3.1

9 years ago

3.3.0

9 years ago

3.2.10

9 years ago

3.2.9

9 years ago

3.2.8

9 years ago

3.2.7

9 years ago

3.2.6

9 years ago

3.2.5

9 years ago

3.2.4

9 years ago

3.2.3

9 years ago

3.2.2

9 years ago

3.2.1

9 years ago

3.2.0

9 years ago

3.1.2

9 years ago

3.1.1

9 years ago

3.1.0

9 years ago

3.0.0

9 years ago

2.9.1

9 years ago

2.9.0

9 years ago

2.8.0

9 years ago

2.7.5

9 years ago

2.7.4

9 years ago

2.7.3

9 years ago

2.7.2

9 years ago

2.7.1

9 years ago

2.7.0

9 years ago

2.6.0

9 years ago

2.5.2

9 years ago

2.5.1

9 years ago

2.5.0

9 years ago

2.3.1

9 years ago

2.3.0

9 years ago

2.2.1

9 years ago

2.2.0

9 years ago

2.1.8

9 years ago

2.1.7

9 years ago

2.1.6

9 years ago

2.1.5

9 years ago

2.1.4

9 years ago

2.1.3

9 years ago

2.1.2

9 years ago

2.1.1

9 years ago

2.1.0

9 years ago

2.0.5

9 years ago

2.0.4

9 years ago

2.0.3

9 years ago

2.0.2

9 years ago

2.0.1

10 years ago

2.0.0

10 years ago

1.2.2

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.4

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago