Cuando ejecutas rails db:migrate:reset
a diferencia de rails db:reset
, el esquema de la base de datos no se carga desde schema.rb
pero en su lugar se reconstruye a partir de todas sus migraciones. En migraciones y archivos de esquema, no necesita especificar un id
campo, se proporciona uno por defecto. Sin embargo, a partir de Rails 5.1, se aumentó el tamaño predeterminado del campo id
de INT
a BIGINT
para MySQL y desde SERIAL
a BIGSERIAL
para PostgreSQL. Entonces, probablemente haya alguna interacción entre sus migraciones, schema.rb
, y el esquema real en la base de datos que hace que el campo id se trate como predeterminado (y se omita) en algunos casos y se especifique explícitamente en otros, solo debido al cambio en el tamaño predeterminado. Es difícil adivinar el origen del problema sin ver todos los archivos relevantes.