Quando você executa
rails db:migrate:reset
ao contrário de rails db:reset
, o esquema do banco de dados não é carregado de schema.rb
mas é reconstruído a partir de todas as suas migrações. Em migrações e arquivos de esquema, você não precisa especificar um id
campo, um é fornecido por padrão. No entanto, a partir do Rails 5.1, o tamanho padrão do campo id foi aumentado
de INT
para BIGINT
para MySQL e de SERIAL
para BIGSERIAL
para PostgreSQL. Então provavelmente há alguma interação entre suas migrações, schema.rb
, e o esquema real no banco de dados que está fazendo com que o campo id seja tratado como padrão (e omitido) em alguns casos e seja explicitamente especificado em outros, apenas devido à alteração no tamanho padrão. É difícil adivinhar a origem do problema sem ver todos os arquivos relevantes.