sql >> Database >  >> RDS >> PostgreSQL

Wat bepaalt of rails id::serial in een tabeldefinitie bevat?

Wanneer u rails db:migrate:reset . uitvoert in tegenstelling tot rails db:reset , het databaseschema wordt niet geladen vanuit schema.rb maar wordt in plaats daarvan gereconstrueerd uit al uw migraties. In migraties en schemabestanden hoeft u geen id op te geven veld, wordt er standaard één verstrekt. Vanaf Rails 5.1 is de standaardgrootte van het id-veld echter vergroot van INT naar BIGINT voor MySQL en van SERIAL naar BIGSERIAL voor PostgreSQL. Dus waarschijnlijk is er enige interactie tussen uw migraties, schema.rb , en het daadwerkelijke schema in de database dat ervoor zorgt dat het id-veld in sommige gevallen als standaard wordt behandeld (en weggelaten) en in andere expliciet wordt gespecificeerd, alleen vanwege de wijziging in de standaardgrootte. Het is moeilijk om de oorzaak van het probleem te raden zonder alle relevante bestanden te zien.



  1. Wijs hosttoegangsrechten opnieuw toe aan MySQL-gebruiker

  2. uniek toevoegen aan bestaande externe sleutel

  3. SQL Agent-taak:bepalen hoe lang deze al actief is

  4. Hoe de hoogste N-waarden van elke kolom in MySql te krijgen?