sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvad bestemmer, om skinner inkluderer id::serial i en tabeldefinition?

Når du kører rails db:migrate:reset i modsætning til rails db:reset , databaseskemaet er ikke indlæst fra schema.rb men er i stedet rekonstrueret fra alle dine migrationer. I migreringer og skemafiler behøver du ikke at angive et id felt, er der et som standard. Fra og med Rails 5.1 blev standardstørrelsen af ​​id-feltet dog øget fra INT til BIGINT til MySQL og fra SERIAL til BIGSERIAL til PostgreSQL. Så sandsynligvis er der interaktion mellem dine migreringer, schema.rb , og det faktiske skema i databasen, der forårsager, at id-feltet behandles som standard (og udelades) i nogle tilfælde og er eksplicit angivet i andre, blot på grund af ændringen i standardstørrelsen. Det er svært at gætte på kilden til problemet uden at se alle de relevante filer.



  1. Forbindelse til SQL Server virker nogle gange

  2. Hvad er definitionen af ​​sekundært indeks i postgresql?

  3. Jeg kan ikke returnere et objekt i .then() Promise

  4. Hvordan parses en VARCHAR, der er sendt til en lagret procedure i SQL Server?