Il tuo problema è qui:
WHERE "reviews"."trip_id" = 32
e il messaggio di errore dice che:
quindi hai creato il tuo trip_id
colonna in reviews
come stringa anziché come numero intero. Funzionerà bene in SQLite perché il sistema dei tipi di SQLite è piuttosto lento ma non funzionerà in PostgreSQL poiché PostgreSQL è un po' più severo.
Potresti provare ad aggiungere una migrazione per correggere il tipo di trip_id
:
def change
change_column :reviews, :trip_id, :integer
end
e se ciò non funziona, rilascia e ricrea la tabella:
def change
drop_table :reviews
create_table :reviews do |t|
#...
t.integer :trip_id
#...
end
end
Puoi anche fare un ALTER TABLE tramite SQL grezzo se hai dati che vuoi preservare e change_column
non funziona:
def change
execute %q{
alter table reviews
alter column trip_id
type int using cast(trip_id as int)
}
end
Dovrebbe funzionare in PostgreSQL (ma non in SQLite) fintanto che non hai dati interrotti nel tuo trip_id
.
Una volta che hai risolto, dovresti installare PostgreSQL e passare a quello il tuo ambiente di sviluppo. Sviluppare su SQLite e distribuire su PostgreSQL (o sviluppare su un database e distribuire su qualsiasi altro database per quella materia) è una cattiva idea e ti causerà ogni sorta di dolore e confusione.