sql >> Databáze >  >> RDS >> PostgreSQL

Co určuje, zda rails obsahuje id::serial v definici tabulky?

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.



  1. MySQL datetime výchozí čas s intervalem

  2. Jedinečné IP adresy v hlasovacím systému

  3. Získejte výsledky z mysql na základě zeměpisné šířky a délky

  4. Jak vyřešit ORA-29283:neplatná operace se souborem