Saat Anda menjalankan rails db:migrate:reset sebagai lawan dari rails db:reset , skema database tidak dimuat dari schema.rb tetapi malah direkonstruksi dari semua migrasi Anda. Dalam file migrasi dan skema, Anda tidak perlu menentukan id bidang, satu disediakan secara default. Namun, mulai dengan Rails 5.1, ukuran default bidang id ditingkatkan
dari INT ke BIGINT untuk MySQL dan dari SERIAL ke BIGSERIAL untuk PostgreSQL. Jadi mungkin ada beberapa interaksi antara migrasi Anda, schema.rb , dan skema aktual dalam database yang menyebabkan bidang id diperlakukan sebagai default (dan dihilangkan) dalam beberapa kasus dan secara eksplisit ditentukan dalam kasus lain, hanya karena perubahan ukuran default. Sulit untuk menebak sumber masalahnya tanpa melihat semua file yang relevan.