Wanneer u rails db:migrate:reset
. uitvoert in tegenstelling tot rails db:reset
, het databaseschema wordt niet geladen vanuit schema.rb
maar wordt in plaats daarvan gereconstrueerd uit al uw migraties. In migraties en schemabestanden hoeft u geen id
op te geven veld, wordt er standaard één verstrekt. Vanaf Rails 5.1 is de standaardgrootte van het id-veld echter vergroot
van INT
naar BIGINT
voor MySQL en van SERIAL
naar BIGSERIAL
voor PostgreSQL. Dus waarschijnlijk is er enige interactie tussen uw migraties, schema.rb
, en het daadwerkelijke schema in de database dat ervoor zorgt dat het id-veld in sommige gevallen als standaard wordt behandeld (en weggelaten) en in andere expliciet wordt gespecificeerd, alleen vanwege de wijziging in de standaardgrootte. Het is moeilijk om de oorzaak van het probleem te raden zonder alle relevante bestanden te zien.