-
Notifications
You must be signed in to change notification settings - Fork 1
Sequelize – Creating
Bartosz Łaniewski edited this page May 11, 2018
·
1 revision
// @flow
import type Sequelize, {DataTypes, Model} from "sequelize";
// Fields exposed by each user record:
export type UserRecord = Model<{
id: number,
username: string,
password: string,
createdAt: number,
updatedAt: number,
deletedAt: number
}>;
// User model created on import:
export type UserModel = Class<UserRecord>;
/**
* Creates and configures a new model. Can be loaded with `.import()`.
*
* @param {Sequelize} database
* @param {DataTypes} DataTypes
* @return {UserModel}
*/
export default (database: Sequelize, DataTypes: DataTypes) => {
const User = database.define("user", {
username: { type: DataTypes.STRING },
password: { type: DataTypes.STRING }
});
// $FlowFixMe
User.associate = ({ModelA, ModelB, ModelC}) => {
User.hasMany(ModelA);
User.hasMany(ModelB);
User.belongsToMany(ModelC);
};
User.hook("beforeCreate", (user, options) => {
// …
});
User.hook("afterCreate", (user, options) => {
// …
});
return User;
};
This Wiki and indvidual modules READMEs contains a lot of information – please take your time and read these instructions carefully.