Když spustíte rails db:migrate:reset
na rozdíl od rails db:reset
, schéma databáze není načteno z schema.rb
ale místo toho je rekonstruován ze všech vašich migrací. V migracích a souborech schémat nemusíte zadávat id
Ve výchozím nastavení je k dispozici jedno pole. Počínaje verzí Rails 5.1 se však výchozí velikost pole id zvětšila
z INT
na BIGINT
pro MySQL a ze SERIAL
na BIGSERIAL
pro PostgreSQL. Pravděpodobně tedy existuje určitá interakce mezi vašimi migracemi, schema.rb
a skutečné schéma v databázi, které způsobuje, že pole id je v některých případech považováno za výchozí (a vynecháno) a v jiných je explicitně specifikováno pouze kvůli změně výchozí velikosti. Je těžké odhadnout zdroj problému, aniž byste viděli všechny relevantní soubory.