Getting Table existiert nicht Fehler, aber die Tabelle existiert (ActiveRecord :: StatementInvalid Mysql2 :: Fehler: Tabelle existiert nicht)

9

Beim Versuch, auf eine meiner Seiten zuzugreifen, erhalte ich den folgenden Fehler

  

ActiveRecord :: StatementInvalid (Mysql2 :: Fehler: Tabelle 'p478r679_partybot.secretsanta' existiert nicht: SHOW FIELDS FROM 'secretsanta'):     app / controllers / secretsantas_controller.rb: 7: in 'index'

Aber diese Tabelle existiert in meiner Datenbank.

Um Ihnen einen Überblick über mein Problem zu geben, habe ich diese Anwendung vor einigen Jahren geschrieben und es funktionierte bis vor kurzem. Als ich versucht habe, die Anwendung mit einem Thin Server zu starten, habe ich folgenden Fehler erhalten:

  

Sie haben Rack 1.4.3 bereits aktiviert, aber Ihr Gemfile benötigt Rack 1.2.1. Die Verwendung von bundle exec kann dies lösen. (Gem :: LoadError)

Also habe ich den technischen Support von meinem Hosting-Service um Hilfe gebeten. Sie sagten,

  

"Das Problem war, dass die Rails-Version nicht mit der Bundler-Version kompatibel war. Jetzt haben wir die Schienenversion auf "3.1.10" geändert und den Bundler "1.2.3" installiert. Jetzt wird Ihre Webseite geladen. Der "dünne" Dienst wird auf Ihrem Server gestartet. Der Port hört der Anwendung zu. Siehe die unten angegebenen Details. "

Und sie haben alle meine Edelsteine ​​aktualisiert, damit es funktioniert. Ich verwendete ursprünglich Rails 3.0.1 und dünn 1.2.7. Jetzt habe ich Schienen 3.1.10 und dünn 1.5.1. Jetzt wird die Anwendung geladen, und alle Funktionen funktionieren außer Secretsanta.

Wenn ich den folgenden Teil der Fehlermeldung genau ansehe: "FELDER AUS FEATURESANTE ZEIGEN" Ich sehe, dass der Tabellenname "secretsanta" ist, sollte es "secretsanta s " sein?

Ich bin mir nicht sicher, was ich davon halten soll, nachdem die ganze Anwendung in den letzten drei Jahren gut funktioniert hat und ich bin nicht sicher, warum es nach der Aktualisierung der Edelsteine ​​nicht funktioniert

Hier ist ein Codeausschnitt von Secretsanta Model User Model und SecretsantasController.

Secretsanta.rb

%Vor%

Benutzer.rb

%Vor%

secretsantas_controller.rb

%Vor%

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Vielen Dank für Ihre Hilfe im Voraus

    
Ruper 12.11.2013, 18:39
quelle

1 Antwort

15

Ich glaube, Sie hatten recht mit Ihrem Verdacht über den Namen der Secretsanta-Tabelle.

Sofern Sie in Ihrem secretsanta-Modell keinen Tabellenname festgelegt haben, sucht rails nach einer Tabelle namens secretsantas . Wenn die Anwendung zuvor funktioniert hat, würde ich annehmen, dass die Tabelle tatsächlich den Namen secretsantas hat.

Um die verfügbaren Tabellen aufzulisten, führen Sie:

%Vor%

Ah, hier ist das Problem:

%Vor%

Versuchen Sie, den Tabellennamen in Ihrem Modell anzugeben:

%Vor%     
Nathan Hyde 12.11.2013, 18:54
quelle