Når du kører rails db:migrate:reset
i modsætning til rails db:reset
, databaseskemaet er ikke indlæst fra schema.rb
men er i stedet rekonstrueret fra alle dine migrationer. I migreringer og skemafiler behøver du ikke at angive et id
felt, er der et som standard. Fra og med Rails 5.1 blev standardstørrelsen af id-feltet dog øget
fra INT
til BIGINT
til MySQL og fra SERIAL
til BIGSERIAL
til PostgreSQL. Så sandsynligvis er der interaktion mellem dine migreringer, schema.rb
, og det faktiske skema i databasen, der forårsager, at id-feltet behandles som standard (og udelades) i nogle tilfælde og er eksplicit angivet i andre, blot på grund af ændringen i standardstørrelsen. Det er svært at gætte på kilden til problemet uden at se alle de relevante filer.