Как хранить ISO 8601 Datetime в Sequelizejs - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь сохранить объекты даты и времени UTC ISO 8601 в Sequelize 4.0, однако я могу указывать только DateType.Date в моих моделях.Когда я использую форматированную строку даты и времени ISO 8601 при вставке данных, я получаю ошибку разбора:

"Incorrect datetime value: '2018-05-14T14:29:21.338Z' for column 'columnName' at row 1"

Моя модель выглядит следующим образом (упрощено для вопроса):

module.exports = (sequelize, DataTypes) => {
  var deviceData = sequelize.define('deviceData', {
    steps: DataTypes.INTEGER,
    recordedOn: DataTypes.DATE,
    batteryLevel: DataTypes.INTEGER,
  }, {});

  return deviceData;
};

База данныхconfig выглядит так:

module.exports = {
  development: {
    database: 'DATABASENAME',
    username: 'MYUSERNAME',
    password: 'MYPASSWORD',
    dialect: 'mysql',
    host: 'HOSTNAME'
  },
  testing: {
    dialect: 'sqlite',
    storage: ':memory:',
    logging: false
  }
};

И я объявляю свой экземпляр Sequelize следующим образом:

const fs = require('fs');
const path = require('path');

const basename = path.basename(__filename);
const Sequelize = require('sequelize');
let config = require('../config/db.js');

const db = {};
db.sequelize = new Sequelize(config.database, config.username, config.password, config);
db.Sequelize = Sequelize; 

module.exports = db;

Я не могу решить, должен ли я анализировать все объекты datetime ISO 8601 в объекты datetime, прежде чем явставить в БД или предлагает ли Sequelize возможность интерпретировать объекты даты и времени ISO 8601 вместе с объектами даты и времени в моей базе данных.

...