Когато стартирате rails db:migrate:reset за разлика от rails db:reset , схемата на базата данни не се зарежда от schema.rb но вместо това се реконструира от всички ваши миграции. В миграциите и файловете със схеми не е необходимо да указвате id едно е предоставено по подразбиране. Въпреки това, започвайки с Rails 5.1, размерът по подразбиране на полето за id беше увеличен
от INT към BIGINT за MySQL и от SERIAL към BIGSERIAL за PostgreSQL. Така че вероятно има някакво взаимодействие между вашите миграции, schema.rb и действителната схема в базата данни, която кара полето за id да се третира като стандартно (и да се пропуска) в някои случаи и да бъде изрично указано в други, само поради промяната в размера по подразбиране. Трудно е да се познае източникът на проблема, без да се видят всички съответни файлове.