Sequelize:DataTypes和Sequelize的区别

时间:2017-11-29 22:39:37

标签: javascript node.js orm sequelize.js

我已经看到使用这两个类来定义数据类型,包括在官方文档中,两者显然都有相同的用途。

在教程中,我看到应用程序使用DataTypes作为模型和Sequelize for Migrations,您可以在它们之间进行交换,它们可以继续工作。示例代码:

使用DataTypes的模型:

module.exports = (sequelize, DataTypes) => {
    const Driver = sequelize.define('Driver', {
    firstName: {
      type: DataTypes.STRING(50),
      allowNull: false
    },

使用Sequelize进行迁移:

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Drivers', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },

2 个答案:

答案 0 :(得分:6)

它们中的第二个参数只是sequelize包本身

const Sequelize = require('sequelize');

你会注意到你的index.js模型(如果按照建议进行设置)你做了类似下面的事情,你将sequelize作为第二个参数传递给你。

const model = require(path.join(__dirname, file))(sequelize, Sequelize);

这会公开数据类型。你称之为什么并不重要。例如

  module.exports = (sequelize, asd) => {
    const Driver = sequelize.define('Driver', {
    firstName: {
      type: asd.STRING(50),
      allowNull: false
    },

与迁移相同。

答案 1 :(得分:0)

docs中所述,数据类型为:

  

包含常用数据类型的便捷类。