Sequelize: различие DataTypes и Sequelize

1

Я видел использование обоих классов для определения типов данных, в том числе в официальной документации, которые, по-видимому, выполняют одну и ту же цель.

В учебнике я увидел, что приложение использует 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
      },
Теги:
sequelize.js
orm

2 ответа

6
Лучший ответ

Второй параметр в обоих из них - это только пакет sequelize

const Sequelize = require('sequelize');

Вы заметите, что в ваших index.js моделей (если вы настроили так, как было предложено), что вы делаете что-то вроде ниже, где вы передаете в качестве второго аргумента в качестве продолжения.

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
    },

То же самое с миграциями.

  • 0
    Конечно, теперь я это вижу. Спасибо!
0

Как указано в документах, DataTypes:

Класс удобства, в котором используются обычно используемые типы данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню