J'ai deux bases de données en cours d'utilisation dans une application Ruby on Rails; l'un est la base de données de l'application tandis que l'autre est une base de données indépendante sur laquelle Rails n'a pas de contrôle. Le problème est lors du chargement des appareils dans le dev, il essaie d'exécuter les instructions DELETE sur les tables de la base de données indépendante à partir de la connexion à la base de données dev, ce qui entraîne évidemment des erreurs.Ruby on Rails et db: fixtures: load - peut-il ignorer certains modèles?
Je ne veux pas que Rails essaie de faire quoi que ce soit, mais lisez la base de données indépendante - Je ne veux surtout pas qu'il essaie de supprimer des tables.
Existe-t-il un moyen simple de dire à Rails d'ignorer les modèles de la seconde base de données lors du chargement des appareils? MISE À JOUR: Pour clarifier, Rails semble penser que les tables de la base de données indépendante font partie de la connexion de développement, bien que j'ai spécifié la connexion correcte dans la classe du modèle en utilisant establish_connection
. Comme une autre note, toutes les classes de modèle fonctionnent précisément comme souhaité de script/console
.
Je l'ai essayé avec l'environnement ensemble de variables utilisant l'exportation avant l'affichage; Selon votre suggestion, j'ai aussi essayé de cette façon. Même erreur –
Vous pouvez écrire votre propre appareil pour charger les données de * .yml dans la base de données souhaitée, c'est tout ce que je peux suggérer avec les informations que vous fournissez. GL –
'rake db: fixtures: load RAILS_ENV = test' (pas de test) a fonctionné pour moi. –