Node.js + Sequelize + SQL Server - PullRequest
       9

Node.js + Sequelize + SQL Server

0 голосов
/ 25 февраля 2019

Я использую SQL Server 2005 и node.js с

"dependencies": {
    "sequelize": "^4.42.0",
    "tedious": "^5.0.3"
  }

И я пытаюсь создать эту базу данных

const con = require('./../dbo/connect');
const Processo = con.db.define('processo', {
    Id: {
        type: con.Sequelize.INTEGER,
        autoIncrement: true,
        primaryKey: true
    },
    Cavalo: { type: con.Sequelize.STRING },
    Reboque: { type: con.Sequelize.STRING },
    CNPJTransportadora: { type: con.Sequelize.STRING },
    Motorista: { type: con.Sequelize.STRING },
    CNH: { type: con.Sequelize.STRING },
    EntradaCarreta: { type: con.Sequelize.DATE },
    SaidaCarreta: { type: con.Sequelize.DATE },
    Tara: { type: con.Sequelize.DECIMAL(10, 3)  },
    PesoBruto: { type: con.Sequelize.DECIMAL(10, 3)  },
    Conteiner: { type: con.Sequelize.STRING },
    Dimensao: { type: con.Sequelize.STRING },
    IsoCode: { type: con.Sequelize.STRING },
    GMCI: { type: con.Sequelize.STRING },
    DT: { type: con.Sequelize.STRING },
    Navio: { type: con.Sequelize.STRING },
    Viagem: { type: con.Sequelize.STRING },
    Origem: { type: con.Sequelize.STRING },
    CodOrigem: { type: con.Sequelize.STRING },
    Destino: { type: con.Sequelize.STRING },
    CodDestino: { type: con.Sequelize.STRING },
    Regime: { type: con.Sequelize.STRING }
});
Processo.sync();
module.exports = {
    Processo,
    Sequelize:con.Sequelize
};

Но при запуске функции Sync я получаю эту ошибку:

Необработанный отказ SequelizeDatabaseError: Столбец, параметр или переменная # 7: Невозможнонайти тип данных DATETIMEOFFSET.at Query.formatError (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modules \ s equelize \ lib \ dialects \ mssql \ query.js: 315: 12) в Request.connection.lib.Request [как userCallback] (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ r ecepcao-processo \ node_modules \ sequelize \ lib \ dialects \mssql \ query.js: 107: 25) at Request.callback (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modules \ te dious \ lib \ request.js: 37: 27) at Connection.endOfMessageMarkerReceived (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-pro cesso \ node_modules \ tedious \ lib \ connection.js:2118: 20) в Connection.dispatchEvent (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_mo dules \ tedious \ lib \ connection.js: 1136: 36) в Parser.tokenStreamParser.on (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node _modules \ tedious \ lib \ connection.js: 941: 14)на Parser.emit (events.js: 189: 13) в Parser.parser.on.token (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modu les \ tedious\ lib \ token \ token-stream-parser.js: 27: 14) в Parser.emit (events.js: 189: 13) в addChunk (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \node \ gmci-e \ recepcao-processo \ node_modules \ readable-s tream \ lib_stream_readable.js: 296: 12) в readableAddChunk (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e\ recepcao-processo \ node_modules \ re adable-stream \ lib_stream_readable.js: 278: 11) в Parser.Readable.push (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \recepcao-processo \ node_module s \ readable-stream \ lib_stream_readable.js: 239: 10) в Parser.Transform.push (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modul es \ readable-stream \ lib_stream_transform.js: 139: 32) в Parser.afterTransform (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \node_modul es \ readable-stream \ lib_stream_transform.js: 88: 10) в Parser._transform (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modules \ t edious \ lib\ token \ stream-parser.js: 41: 7) в Parser.Transform._read (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modu les \readable-stream \ lib_stream_transform.js: 177: 10) в Parser.Transform._write (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_mod ules \ readable-stream \ lib_stream_transform.js: 164: 83) в doWrite (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modules \ readable-st ream \ lib_stream_writable.js: 405: 139) в writeOrBuffer (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modules \ reada ble-stream \ lib_stream_writable.js: 394: 5) в Parser.Writable.write (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modul es \ readable-stream \ lib_stream_writable.js: 303: 11) в Parser.addEndOfMessageMarker (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ nod e_modules \ tedious \ lib \ token \ token-stream-parser.js: 45: 24) в сообщении Connection.message (C: \ Users \ tiago.santos \ Desktop \ Labs \ diariamente-ts \ node \ gmci-e \ recepcao-processo \ node_modules \утомительный \ lib \ connection.js: 2107: 32)

1 Ответ

0 голосов
/ 26 февраля 2019

Я знаю это далеко от лучшего решения, но я решил так:

'use strict';
const fs = require('fs');
const paths = {
    datatypes: `${__dirname}/../../node_modules/sequelize/lib/dialects/mssql/data-types.js`
};

async function rewriteFile(path, find, replace) {
    let data = fs.readFileSync(paths[path], 'utf-8');
    let newValue = data.replace(find, replace);
    return await fs.writeFileSync(paths[path], newValue, 'utf-8');
}
module.exports = {
    rewriteFile
}

И запустите приведенный ниже код перед началом экспресс:

const sequelizeBug = require('./../api/helpers/sequelize-bug');
sequelizeBug.rewriteFile('datatypes', 'DATETIMEOFFSET','DATETIME');

если у кого-то есть лучшее решение, я принимаю, спасибо.

...