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

Rails Migrations:próbowano zmienić typ kolumny z ciągu na liczbę całkowitą

Cytuję instrukcję dotyczącą ALTER TABLE :

Klauzula USING musi być podana, jeśli nie ma niejawnego ani przypisania przypisania ze starego na nowy typ.

Potrzebujesz:

ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int;
ALTER TABLE listings ALTER latitude  TYPE integer USING latitude::int;

Lub krócej i szybciej (dla dużych stołów) za pomocą jednego polecenia:

ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int
                    ,ALTER latitude  TYPE integer USING latitude::int;

To działa z danymi lub bez tak długo, jak wszystkie wpisy są konwertowane na integer .
Jeśli zdefiniowałeś DEFAULT dla kolumny, może być konieczne usunięcie i ponowne utworzenie tego dla nowego typu.

Oto artykuł na blogu o tym, jak to zrobić z ActiveRecord.
Lub skorzystaj z porady @mu w komentarzu. Zna swojego Rubiego. Jestem dobry tylko z PostgreSQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ustaw wartość w zależności od wykresu Helma

  2. Jak uzyskać wczorajszą datę w PostgreSQL

  3. Zdarzenie ROLLBACK wyzwalacze w postgresql

  4. Django cache.set() powodujący błąd zduplikowanego klucza

  5. Czy PostgreSQL obsługuje sortowanie niewrażliwe na akcenty?