Skip to content

Commit 4c727a6

Browse files
dead-horsefengmk2
authored andcommitted
feat: support config.Sequelize
1 parent 86d660d commit 4c727a6

File tree

4 files changed

+35
-4
lines changed

4 files changed

+35
-4
lines changed

README.md

+15
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,21 @@ module.exports = app => {
139139
}
140140
```
141141

142+
### Associate
143+
144+
Define all your associations in `Model.associate()` and egg-sequelize will execute it after all models loaded. See example below.
145+
146+
### Customize Sequelize
147+
148+
By default, egg-sequelize will use sequelize@4, you can cusomize sequelize version by pass sequelize instance with `config.sequelize.Sequelize` like this:
149+
150+
```js
151+
// config/config.default.js
152+
exports.sequelize = {
153+
sequelize: require('sequelize');
154+
};
155+
```
156+
142157
### Full example
143158

144159
```js

agent.js

-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,3 @@
33
module.exports = agent => {
44
require('./lib/loader')(agent);
55
};
6-

config/config.default.js

+17
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,21 @@ exports.sequelize = {
77
port: 3306,
88
username: 'root',
99
password: '',
10+
11+
// support customize your own Squelize
12+
Sequelize: require('sequelize'), // v5 or v3
13+
14+
// support multi datasources by config.sequelize.datasources
15+
// datasources: [
16+
// {
17+
// delegate: 'model', // lood to `app[delegate]`
18+
// baseDir: 'model', // models in `app/${model}`
19+
// // other sequelize configurations
20+
// },
21+
// {
22+
// delegate: 'sequelize', // lood to `app[delegate]`
23+
// baseDir: 'sequelize', // models in `app/${model}`
24+
// // other sequelize configurations
25+
// },
26+
// ],
1027
};

lib/loader.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
'use strict';
22

33
const path = require('path');
4-
const Sequelize = require('sequelize');
5-
const AUTH_RETRIES = Symbol('authenticateRetries');
64
const sleep = require('mz-modules/sleep');
5+
const AUTH_RETRIES = Symbol('authenticateRetries');
76

87
module.exports = app => {
98
const defaultConfig = {
@@ -21,7 +20,8 @@ module.exports = app => {
2120
};
2221

2322
const config = app.config.sequelize;
24-
app.Sequelize = Sequelize;
23+
// support customize sequelize
24+
app.Sequelize = config.Sequelize || require('sequelize');
2525

2626
const databases = [];
2727
if (!config.datasources) {

0 commit comments

Comments
 (0)