PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Co decyduje o tym, czy rails zawiera id::serial w definicji tabeli?

Po uruchomieniu rails db:migrate:reset w przeciwieństwie do rails db:reset , schemat bazy danych nie jest ładowany z schema.rb ale zamiast tego jest zrekonstruowany ze wszystkich twoich migracji. W migracjach i plikach schematów nie musisz określać id pole, jedno jest dostarczane domyślnie. Jednak począwszy od Rails 5.1, domyślny rozmiar pola identyfikatora został zwiększony z INT do BIGINT dla MySQL i z SERIAL do BIGSERIAL dla PostgreSQL. Więc prawdopodobnie jest jakaś interakcja między twoimi migracjami, schema.rb , a rzeczywisty schemat w bazie danych, który powoduje, że pole id jest w niektórych przypadkach traktowane jako domyślne (i pomijane), a w innych jawnie określone, tylko ze względu na zmianę rozmiaru domyślnego. Trudno odgadnąć źródło problemu, nie widząc wszystkich odpowiednich plików.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sekwencja upuszczania i kaskada

  2. Spowodowane przez:org.postgresql.util.PSQLException:FATAL:pozostałe gniazda połączeń są zarezerwowane dla połączeń superużytkownika bez replikacji

  3. Django+Postgres FATAL:przepraszam, już za dużo klientów

  4. Zresetuj sekwencję w jpa

  5. Odzyskane usunięte wiersze w postgresql