Hallo Ich habe meine Rails-Anwendung mit sqlite gestartet, aber als ich versucht habe, sie auf heroku zu implementieren, habe ich herausgefunden, dass ich postgreSQL verwenden musste. Also habe ich die Mühe gemacht, meine gemfile und database.yml Datei zu ändern und die neue postgresql Datenbank zu erstellen. Jedoch, wenn ich versuche, meine Datenbank zu migrieren ich den Fehler:Konvertierung von sqlite nach postgresql
ActiveRecord::StatementInvalid: PG::UndefinedObject: ERROR: type "reference" does not exist
LINE 1: ALTER TABLE „Fragen“ ADD „quiz_id“ Referenz
das wahrscheinlich ist, weil ich eine Referenz verwendet, um eine Beziehung zu machen in mein db
Ich bin im Grunde auf der Suche nach der Lösung für diese Situation.
Hier sind meine Migrationen (wenn es darauf ankommt):
class CreateQuestions < ActiveRecord::Migration
def change
create_table :questions do |t|
t.string :question
t.string :answer1
t.string :answer2
t.string :answer3
t.string :answer4
t.integer :correct_id
t.timestamps null: false
end
end
end
class CreateQuizzes < ActiveRecord::Migration
def change
create_table :quizzes do |t|
t.string :name
t.string :subject
t.timestamps null: false
end
end
Ende
class AddQuizIdToQuestions < ActiveRecord::Migration
def change
add_column :questions, :quiz_id, :reference
end
end
bearbeiten neue Frage: Wenn auf meinem Heroku Server gibt es einige tote Seiten sind, aber nicht, wenn ich bin läuft auf meinem lokalen Server. Hier ist meine Heroku-Adresse: https://krisquiz.herokuapp.com/
Die toten Seiten sind, wenn Sie eine Frage einreichen und wenn Sie versuchen und starten Sie ein Quiz. Ich schaute auf die URLs und sie sehen richtig aus. Das einzige, was mir für die beiden Seiten einfällt, ist, dass ich die URLs manuell für die Links erstellt habe (zB: request.base_url + '/ quiz /' + quiz.id.to_s + '/ start'). Da ich nicht sicher bin, was ich Ihnen als Information geben muss, sagen Sie es mir einfach und ich werde versuchen, schnell zu Ihnen zurück zu kommen.
Wie sieht Ihre Migration aussehen? Es klingt für mich so, als ob etwas mit Ihrer Migration nicht stimmt, so wie Sie versuchen, eine Spalte einer Tabelle zu ändern, die nicht existiert. – hightempo
Nun, ich habe keine neuen Migrationen erstellt, seit ich alle Migrationen geändert habe (oder wenigstens versucht habe, die Datenbank zu ändern), als ich auf sqlite war, also vermutete ich, dass das Problem in postgresql liegt. So oder so, hier sind meine Migrationen (ich werde sie in meine Frage bearbeiten) –