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

Rails i Postgres:Migracja do change_colomn powoduje, że błąd nie może być rzutowany na typ timestamp bez strefy czasowej

W Railsach wyglądałoby to mniej więcej tak

class ChangeStatusUpdatedAtToDateTime < ActiveRecord::Migration
  def up
    remove_column :bookings, :status_updated_at
    add_column :bookings, :status_updated_at, :datetime
  end

  def down
    remove_column :bookings, :status_updated_at
    add_column :bookings, :status_updated_at, :time
  end
end

Jeśli masz dane, które chcesz przenieść, możesz użyć następującego kodu (nie testowano!):

class ChangeStatusUpdatedAtToDateTime < ActiveRecord::Migration
  def up
    add_column :bookings, :temp_status_updated_at, :datetime
    Booking.update_all("temp_status_updated_at = updated_at")
    remove_column :bookings, :status_updated_at
    rename_column :bookings, :temp_status_updated_at, :status_updated_at
  end

  def down
    add_column :bookings, :temp_status_updated_at, :time
    Booking.update_all("temp_status_updated_at = updated_at")
    remove_column :bookings, :status_updated_at
    rename_column :bookings, :temp_status_updated_at, :status_updated_at
  end
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Importowanie spakowanego pliku CSV do PostgreSQL

  2. zainstaluj pakiety z docker-compose.yml do kontenera docker

  3. Jak Div() działa w PostgreSQL

  4. Pula połączeń PostgreSQL:część 1 – zalety i wady

  5. Jaka jest różnica między użytkownikiem a rolą?