8
votes

Rake DB: Migrate produit "RAKE ANTORTED! n'a pas pu trouver de table" erreur

Je suis nouveau dans les rails et je construis une application simple de suivi de projet pour mon employeur. Je développe l'application sur mon Mac et je le poussant à Github. Je viens de réussi à cloner mon GitHub Repo à une boîte de fenêtres derrière le pare-feu de mon entreprise dans l'espoir de laisser des collègues essayer l'application.

Mais quand je vais à Rake DB: migrer pour initialiser la base de données dans la zone Windows, je reçois le Suivre les messages d'erreur: xxx

ma liste de pierres précieuses ressemble à ceci: xxx

mon fichier schema.rb dans la zone Windows ressemble à ceci: xxx

Comme il s'agit de la première fois que je gère des migrations sur cette machine, je m'attendrais à ce que rien sur le processus de migration ne devrait chercher à accéder aux "projets" 'Tableau avant sa création. Mais je remarque que la table "Projets" n'est pas répertorie dans Schema.RB Jusqu'à après plusieurs tables qui y sont associées (actifs, macroposts.) Est-ce que la source du problème?

ou est une partie sorte de problème de dépendance gemme au travail ici? J'ai remarqué que le gem 'Faker' se présente vers le haut de la liste d'erreurs, même si je ne l'en profite même pas vraiment, sauf dans mes tests (copié du railstorial de Michael Hartl.org.)

Merci pour toute aide ou suggestion que vous pouvez offrir!

Dean Richardson Genrighen.com


0 commentaires

4 Réponses :


0
votes

peut vouloir essayer de RAKE DB: CREATE Assurez-vous également que vos fichiers de configuration sont corrects en pointant sur le serveur SQL souhaité.

Assurez-vous également que tous vos fichiers de migration ont l'air bien et n'ont aucune erreur de syntaxe ni rien de tel.


4 commentaires

Les fichiers de l'environnement.rb et de base de données.yml semblent pointer vers SQLITE3 et le joyau SQLITE3-RUBY approprié. Il est possible que mes fichiers SQLITE3 soient incompatibles avec mes autres fichiers rails, mais si oui, ce n'est pas évident comment. Mes fichiers de migration fonctionnent sur d'autres machines, alors je suis assez confiant d'eux.


J'ai supprimé la base de données de développement vide et Ran Rake DB: Créez comme vous l'avez suggéré. Non "Impossible de trouver la table" d'erreur a été soulevé cette fois. J'ai ensuite essayé de démarrer le serveur ("script rubis / serveur") et a eu une autre longueur d'erreur longue qui a commencé avec "Impossible de trouver le tableau" Projets ". Le problème de base est donc toujours là.


Vous devez exécuter des migrations après avoir créé la base de données, donc je voudrais exécuter rake dB: migrer après exécution rake dB: Créer


En fin de compte, j'ai copié une base de données de développement existante de mon Mac vers le serveur Windows et cela a fonctionné bien. Merci pour vos conseils!



13
votes

J'ai eu ce problème exact des dernières semaines sur un projet latéral que je travaille. La réponse ne s'est clairement devenue claire à moi lorsque je rencontrais Rake DB: migrer avec - TRACE. Une fois là-bas, j'ai remarqué que la trace de la pile se plaignait de Factory_girl de ne pas pouvoir instancier l'élément de table manquant.

Je suis allé dans mon fichier usine.rb et supprimé le modèle incriminé et après avoir été capable d'exécuter rake dB: migrer . De plus, le problème pour moi était: xxx

Dans ce cas, l'usine à l'intérieur de l'usine tentait d'insérer pendant la tâche du râteau. Puisque la table n'existait pas encore, il a soufflé. Avec un peu d'aide, j'ai trouvé que la bonne façon de le faire est la suivante: xxx


2 commentaires

Merci pour ça. C'était exactement mon problème aussi.


Une idée de la fille de l'usine devrait faire quelque chose comme ceci pendant le schéma: charge en premier lieu? Ne devrait pas schéma: charger simplement utiliser la base de données.yml et schema.rb?



5
votes

Je viens de rencontrer ce même problème. Rake DB: Créer fonctionnerait, mais fonctionnant quelque chose d'autre, comme Rake DB: Schema: chargez ou RAKE DB: migrer , a échoué avec une erreur sur une table manquante. La réponse de Chris Hein m'a pointé dans la bonne direction. Le tableau manquant était référencé dans les spécifications et, pour une raison quelconque, ils ont été chargés dans le cadre de l'environnement avant que les tâches du râteau soient exécutées. Je viens de déplacer le dossier des spécifications, passez les tâches du râteau et le déplacé le déplacé.


1 commentaires

C'était exactement ce qui m'est arrivé. Alors, suivant ce que vous avez dit, j'ai commenté le code dans un fichier initialiseur (excusez l'orthographe britannique) avec le code référençant ce modèle, alors Rake DB: Schéma: charge (car il suffit de Rake DB: migrer était toujours en difficulté), et voila!, ça a fonctionné. Merci!



0
votes

eu un problème similaire et c'était à faire avec Factory_girl alors que Chris a souligné. Cette façon semble un moyen plus facile de le résoudre:

dans gemfile, définissez une fille d'usine comme ceci: xxx

puis dans SPEC_HELPER.RB Fichier: < Pré> xxx

Voici le lien vers la réponse originale: vis FactoryGirl Up Rake DB: Processus de migration


0 commentaires