Je suis le déploiement d'un Rails 3.1 application pour Heroku du Cèdre de la pile. Avec Heroku de Cèdre et de Rails 3.1, vous pouvez compiler les actifs de vous-même localement, laissez Heroku compiler lorsque vous appuyez (pendant "slug compilation"), ou être compilé juste-à-temps, tandis que l'application est en cours d'exécution. Je veux faire l'option du milieu, laissant Heroku précompiler les actifs.
Lorsque Heroku s'exécute actifs:précompiler tâche, il fait des erreurs avec "impossible de se connecter au serveur" parce que l'application tente de se connecter à la base de données, mais aucune base de données n'est disponible à ce stade de la limace de compilation. Le manque de connexion de base de données est normal et inévitable à ce stade. Je suis à la recherche d'un moyen de passer outre, parce que d'une connexion de base de données n'est pas indispensable à l'actif de précompilation.
La partie de mon application qui tente de se connecter à la base de données est de Concevoir. Il y a un devise_for :users
ligne dans les itinéraires.rb qui souhaite regarder le modèle de l'Utilisateur.
Je pourrais juste écrire une tâche rake que les bouchons hors devise_for et d'en faire une prereq d'actifs:précompiler. Je pense qu'il permettrait de résoudre mon problème, mais je suis à la recherche d'une plus universel solution que je pourrais utiliser sur tous les Rails 3.1 application avec ce problème sur Heroku.
Il n'y a rien là-bas, ou pouvez-vous imaginer de quoi que ce soit que les silences de la base de données des erreurs de connexion pendant l'exécution de l'application assez pour avoir un itinéraire et les actifs de la génération de chemin?
Évidemment, si une application a besoin de lire/écrire des données lors du démarrage, nous ne pouvons pas le talon, mais nous avons tous les faux ActiveRecord modèle automatiquement?