2010-12-27 3 views
2

Alors j'ai couruHeroku initialise seulement quelques-uns de mes modèles

heroku db:push 

Et il est revenu

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 

Et quand je suis allé à

heroku console 

Cela a fonctionné

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

Cela a fonctionné

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

Mais le reste ne revint quelque chose comme

>> 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' 

mise à jour 1:

Et quand je tapais

>> ActiveRecord::Base.connection.tables 

il est revenu

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

aide heroku plug-in de console SQL

J'obtenu

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

Je pense qu'ils sont en vigueur dans la base de données Heroku déjà.

Il y a probablement quelque chose de mal avec le support db: migrate

mise à jour 2:

Je courais en rack db: migrate localement dans les deux modes de production et de développement et rien de mal passé.

Mais quand je l'ai couru sur Heroku il ne revint:

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

Aussi, je me sers sqlite3

mise à jour 3:

donc j'ai ouvert console Heroku et dactylographié dans la commande suivante

class Authentication < ActiveRecord::Base;end 

Étonnamment, j'étais capable d'appeler la classe d'authentification, mais une fois que je suis sorti, rien n'a été changé.

+1

Avez-vous exécutez vos migrations sur Heroku? – Jimmy

+0

Je crois que j'ai couru mes migrations – JayX

+0

Je crois que j'ai couru "heroku rake db: migrate", sauf qu'il ne montre rien d'autre que mon adresse dyno. – JayX

Répondre

2

Cette erreur:

>> Project 
    NameError: uninitialized constant Project 

signifie que le modèle de projet manque, ce n'est pas fait partie de la base de données.

essayer:

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

vous l'avez appelé pojects il apparaît et authenticato

, vous avez également heroku redémarré le droit d'application?

Oh, et vous avez engagé les fichiers dans git et fait un git push heroku master normal aussi j'espère?Vous continuez à parler de heroku db: push que je n'utilise presque jamais dans cette commande au quotidien.

+0

Qu'en est-il de schema_migrat? Je pense que heroku tronque juste la ficelle. Et il montre poject parce que j'ai supprimé "r" accidentellement quand j'essayais de coller le message. – JayX

+0

Bizarre. Est-ce qu'ils apparaissent ici (en dev et en heroku?) Lorsque vous utilisez ceci dans la console: Class.constants (vers le bas généralement) Ensuite, pour voir la seule constante: Class.constants.grep/Project/ – pjammer

+0

J'ai utilisé Class.constants .grep/User/ il a renvoyé => ["User"] Cependant, quand j'ai utilisé Class.constants.grep/Project/ou Class.constants.grep/Projects/it retourné => [] – JayX

1

Si vous étiez en fait les tableaux manquant dans SQLite vous verriez une erreur comme Project(Table doesn't exist)

+0

J'ai tapé "Nonsense" et il a retourné le même message d'erreur. – JayX

+0

Droit, comme vous devriez. En d'autres termes, le message d'erreur est Rails disant qu'il n'a aucune idée de ce qu'est cette classe. Si Rails savait réellement ce que c'est ... et en plus il vous manquait une table, il devrait retourner l'erreur '(Table n'existe pas)'. –

+1

Ce que j'essaie de déduire, c'est que le problème n'est pas avec la table existante, pas existante, ou manque d'enregistrements. Le problème est que la classe n'est pas reconnue du tout. Il semble que le problème réside dans vos fichiers Model. Soit ils sont incorrects, soit vous ne les avez pas ajoutés à vos commits ou ils sont ignorés. Si ce n'est toujours pas le cas. Essayez de le déboguer en créant la classe dans la console manuellement. –

Questions connexes