2010-12-27 5 views
2

So lief ichHeroku initialisiert nur einige meiner Modelle

heroku db:push 

Und es kehrte

Sending schema 
Schema:  100% |==========================================| Time: 00:00:08 
Sending indexes 
schema_migrat: 100% |==========================================| Time: 00:00:00 
projects: 100% |==========================================| Time: 00:00:00 
tasks:   100% |==========================================| Time: 00:00:00 
users:   100% |==========================================| Time: 00:00:00 
Sending data 
8 tables, 70,551 records 
groups:  100% |==========================================| Time: 00:00:00 
schema_migrat: 100% |==========================================| Time: 00:00:00 
projects: 100% |==========================================| Time: 00:00:00 
tasks:   100% |==========================================| Time: 00:00:02 
authenticatio: 100% |==========================================| Time: 00:00:00 
articles:  100% |==========================================| Time: 00:08:27 
users:   100% |==========================================| Time: 00:00:00 
topics:  100% |==========================================| Time: 00:01:22 
Resetting sequences 

Und wenn ich zu

ging
heroku console 

Das funktionierte

>> Task 
    => Task(id: integer, topic: string, content: string, 

Das funktionierte

>> User 
    => User(id: integer, name: string, email: string, 

Aber der Rest kehrte nur so etwas wie

>> Project 
    NameError: uninitialized constant Project 
/home/heroku_rack/lib/console.rb:150 
/home/heroku_rack/lib/console.rb:150:in `call' 
/home/heroku_rack/lib/console.rb:28:in `call' 


>> Authentication 
    NameError: uninitialized constant Authentication 
/home/heroku_rack/lib/console.rb:150 
/home/heroku_rack/lib/console.rb:150:in `call' 

Update 1:

Und wenn ich

>> ActiveRecord::Base.connection.tables 

getippt zurück es

=> ["projects", "groups", "tasks", "topics", "articles", "schema_migrations", "authentications", "users"] 

Heroku SQL-Konsole Plugin

Ich habe

SQL> show tables 
+-------------------+ 
| table_name  | 
+-------------------+ 
| authentications | 
| topics   | 
| groups   | 
| projects   | 
| schema_migrations | 
| tasks    | 
| articles   | 
| users    | 
+-------------------+ 

Also ich denke, sie bereits in Heroku der Datenbank vorhanden sind.

Es ist wahrscheinlich etwas falsch mit Rack db: wandern

Update 2:

I Rack db lief: Migration vor Ort in der Produktion und Entwicklung Modi und nichts falsch passiert ist.

Aber wenn ich es auf Heroku lief es nur zurückgegeben:

$ heroku rake db:migrate 
(in /disk1/home/slugs/389817_1c16250_4bf2-f9c9517b-bdbd-49d9-8e5a-a87111d3558e/mnt) 
    $ 
Auch

, ich bin mit sqlite3

Update 3:

so öffnete ich Heroku Konsole und typisiert im folgenden Befehl

class Authentication < ActiveRecord::Base;end 

Erstaunlicherweise konnte ich die Authentication-Klasse aufrufen, aber sobald ich ausstieg, wurde nichts geändert.

+1

Haben Sie Ihre Migrationen auf Heroku laufen? – Jimmy

+0

Ich glaube, ich lief meine Migrationen – JayX

+0

Ich glaube, ich lief "Heroku Rake db: migrieren", außer es zeigte nichts außer meiner Dyno-Adresse. – JayX

Antwort

2

Dieser Fehler sehen:

>> Project 
    NameError: uninitialized constant Project 

bedeutet, dass Projektmodell fehlt, das gehört zu der Datenbank nicht.

Versuch:

git add . 
git commit -am 'update' 
git push heroku master 
2

Sie es genannt pojects es erscheint und authenticato

Auch Sie haben Heroku neu gestartet die App richtig?

Oh, und Sie haben die Dateien in git commited und haben eine normale git push heroku master ich hoffe auch?

du redest einfach weiter über heroku db: push, die ich kaum jemals benutze diesen befehl im tagtag commits.

+0

Wie wäre es mit schema_migrat? Ich denke, Heroku schneidet nur die Zeichenfolge ab. Und es zeigt Project, weil ich versehentlich "r" gelöscht habe, als ich versuchte, die Nachricht einzufügen. – JayX

+0

Seltsam. Werden sie hier angezeigt (in dev und in heroku?), Wenn du dies in der Konsole verwendest: Class.constants (normalerweise nach unten) Dann um die einzelne Konstante zu sehen: Class.constants.grep/Project/ – pjammer

+0

Ich habe Class.constants benutzt .grep/User/ es zurückgegeben => ["User"] Wie auch immer, wenn ich Class.constants.grep/Project/oder Class.constants.grep/Projects/es verwendet = = [] – JayX

1

Wenn Sie die Tabellen in SQLite tatsächlich fehlten Sie würden einen Fehler wie Project(Table doesn't exist)

+0

Ich tippte "Nonsense" ein und es wurde dieselbe Fehlermeldung zurückgegeben. – JayX

+0

Richtig, wie Sie sollten. Mit anderen Worten, die Fehlermeldung ist, dass Rails sagt, dass es keine Ahnung hat, was diese Klasse ist. Wenn Rails tatsächlich wüsste, was es ist ... und zusätzlich eine Tabelle fehlte, sollte es den Fehler "(Tabelle existiert nicht)" zurückgeben. –

+1

Was ich versuche zu schließen, ist, dass das Problem nicht mit der Tabelle vorhanden ist, nicht existiert, oder fehlende Datensätze. Das Problem ist, dass die Klasse überhaupt nicht erkannt wird. Es scheint, als ob das Problem in Ihren Model-Dateien ist. Entweder sind sie falsch oder du hast sie nicht zu deinen Commits hinzugefügt oder sie werden ignoriert. Wenn das immer noch nicht der Fall ist. Versuchen Sie es zu debuggen, indem Sie die Klasse manuell in der Konsole erstellen. –

Verwandte Themen