graphql-guru-sequelize
Version:
Sequelize database resolver modules for GraphQL Guru
101 lines (79 loc) • 2.25 kB
Markdown
# GraphQL Guru Sequelize
Sequelize database resolver modules for GraphQL Guru.
It supports the dialects PostgreSQL, MySQL, SQLite and MSSQL
## Installation
1) In a terminal run `npm install graphql-guru-sequelize`
2) In environment.js add the path to the json storage file and optionally add defaults to seed the database on creation.
server/environment.js
```
database: {
sequelize: {
username: 'username',
databases: 'database',
port: '5432',
dialect: 'sqlite', // one of 'mysql'|'sqlite'|'postgres'|'mssql',
host: 'localhost',
pool: {
max: 5,
min: 0,
idle: 10000
}
},
// SQLite only
storage: 'path/to/sqlite/database'
}
```
3) In index-database.js import graphql-guru-sequelize and add it to the database object.
server/core/database/index-database.js
```
import * as sequelize from 'graphql-guru-sequelize';
export const databases = {
sequelize
};
```
4) extend resolverQuery and resolverMutation with SequelizeQuery and SequelizeMutation respectively.
server/modules/resolverQuery.js
```
import { SequelizeQuery } from 'graphql-guru-sequelize';
export default class People extends SequelizeQuery {
}
```
server/modules/resolverMutation.js
```
import { SequelizeMutation } from 'graphql-guru-sequelize';
export default class People extends SequelizeMutation {
}
```
5) Add the methods to your schema files
server/modules/schemaQuery.js
```
peopleResolve(id: String): People
peopleFindAll(id: String): [People]
peopleFindById(id: String): People
peopleFindManyById(id: [String]): [People]
```
server/modules/schemaMutation.js
```
# Add description
peopleCreate(
firstName: String,
lastName: String
): People
# Add description
peopleRemove (
id: String
): People
# Add description
peopleUpdate(
id: String,
firstName: String,
lastName: String
): People
```
# Usage
Once all the installation steps are complete you're go to go.
You can overwrite the methods with your own or add new methods inside the resolvers.
# Database methods
For database usage see [sequelizejs.com]http://docs.sequelizejs.com/
# License
MIT