1
resposta

ERROR: Incorrect datetime value: '0000-00-00 00:00:00' (MYSQL) / Sequelize

Quando rodo o comando de migração, não cria a coluna no meu banco de dados (Mysql), sendo o erro: npx sequelize-cli db:migrate

Sequelize CLI [Node: 10.19.0, CLI: 6.2.0, ORM: 6.5.0]

Loaded configuration file "api/config/config.json". Using environment "development". == 20210226100000-addcolumn-pessoas: migrating =======

ERROR: Incorrect datetime value: '0000-00-00 00:00:00' for column 'deletedAt' at row 1

O meu código:

module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.addColumn('Pessoas', 'deletedAt', {
        allowNull: false,
        type: Sequelize.DATE
    })
  },
  down: async (queryInterface, Sequelize) => {
    await queryInterface.removeColumn('Pessoas', 'deletedAt')
  }
};

Como resolver?

1 resposta

Oi Karina, tudo bem? O que eu acho que tá acontecendo é que você já tem registros na tabela pessoas, quando o MySQL for criar essa coluna nova, como ela não pode ser nula (allowNull: false), ele vai querer um valor pra não quebrar a regra de nulidade, chuto que você resolve facilmente isso colocando um valor padrão para a coluna caso o valor não seja informado, o próprio banco tem uma função pra isso, é o NOW(), então chuto que se você usar defaultValue: 'NOW()' você resolve este caso, ou mesmo defaultValue: Date.now().

Espero ter ajudado, bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software