sql >> Databáze >  >> RDS >> PostgreSQL

Rails &Postgres:Migrace na change_colomn způsobuje chybu, kterou nelze přetypovat do typu timestamp bez časového pásma

V Rails by to vypadalo nějak takto

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

Pokud jste měli data, která chcete přenést, můžete použít následující kód (netestováno!):

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. Použití Dapper QueryMultiple v Oracle

  2. Jak mohu nahradit pouze první výsledek ve funkci SQL

  3. Chyba:ER_NOT_SUPPORTED_AUTH_MODE:Klient nepodporuje ověřovací protokol požadovaný serverem; zvážit upgrade klienta MySQL

  4. Kurz ovládání Microsoft TreeView