Quand j'essaie de déployer mon application avec Capistrano, je vais obtenir cette erreur:
a échoué: "SH -C 'CP /var/www/my_app/Relases/20120313115055/config/database.staging.yml /var/www/my_app/relases/20120313115055/config/database.yml '"sur IP_ADDR P> blockQquote>
My
base de données.yml strong> c.-à-d. Ie vide, base de données.sing.yml strong>: p> cp: cannot stat `/var/www/my_app/releases/20120313144907/config/database.staging.yml': No such file or directory
3 Réponses :
Je ne sais pas comment résoudre votre problème. Il ressemble à la base de données.Stager.yml n'est pas déployé, il n'y a donc rien pour elle de copier sur.
Je pense qu'il y a un meilleur flux de travail, cependant. Des choses comme les paramètres et les configurations de base de données ne changent généralement pas entre les déploiements, de sorte que ces éléments peuvent aller dans le dossier partagé de toutes les communiquées de capistrano. En règle générale, vous ne voulez pas que votre base de données soit dans votre repo, que ce soit, car il s'agit d'informations sensibles. Vous pouvez satisfaire ces deux choses en excluant Cela nécessite que vous fassiez une seule fois. sur vos serveurs. Vous avez besoin de créer un Votre Cela signifie que votre repo ne contiendra aucun fichier config / base de données.yml code> dans votre
.gitignore code>. P>
base de données.yml code> sur
your_app_path / partagé / config code>. Partagé est un frère de sœurs à la courante et à la sortie. P>
déployez.rb code> devrait avoir une tâche qui lime la nouvelle base de données
de la version de la version nouvellement déployée. / Code> à l'activation dans le répertoire partagé. Comme ceci: p>
base de données.yml code>. Depuis qu'ils sont probablement déjà dans votre repo. Vous devrez
.gitignore code> et commettez cela. P> p>
Nous avons fait cela, mais inclus une base de données.yml.example in config, que les développeurs peuvent utiliser pour se rendre localement sans deviner sur les paramètres de base de données.yml
Je pense que Current / Config / Database.yml est lié à partagé / config / base de données.yml Si partagé / config / base de données.yml est manquant, il vous donnera "aucun fichier ou répertoire de ce type. Nous pouvons la créer manuellement pour partager / config / databone.yml et le déploier. Ce truc fonctionne ici.
Désolé, pourquoi votre Déployer.rb code> Script mentionné
paramètres.yml code>?
Si vous n'avez pas besoin de "Référencier des objets d'application ou des méthodes" ( 1 A>) Pendant le précompilie, vous pouvez être correct avec la définition config.assets.initialize_on_procomple code> à
false code> dans
config / applicateur.rb code> p> p> p> p> P>
dans Capistrano 3, la liaison de fichiers est intégrée. La réponse de John est simplement:
partagé / code> Créez config / base de données.yml code> li>
-
dans config / déployé.rb code> Utilisez cette ligne p>
XXX PRE> LI>
ul> Cela fait ce que John disait. P> p>
Ça y est. Merci
Que se passe-t-il lorsque vous exécutez la commande CP manuellement sur cette machine?
.yml ou .ymp? Si vous avez .YMP votre fichier est nommé mal
Lorsque j'essaie de courir dans le terminal sur le serveur, je reçois donc l'erreur Aucun fichier ou répertoire de ce type B>, et lorsque je jetez un coup d'œil dans le répertoire Livraison B>. c'est vide.