J'essaie de déployer mon application rails avec capistrano, mais j'ai des problèmes lors de l'exécution de mes migrations. Dans mon environnement de développement, j'utilise simplement sqlite comme base de données, mais sur mon serveur de production j'utilise MySQL. Le problème est que je souhaite que les migrations soient exécutées à partir de mon serveur et non de ma machine locale, car je ne peux pas me connecter à ma base de données à partir d'un emplacement distant.Migration en cours sur le serveur lors du déploiement avec capistrano
Configuration du serveur: Une boîte debian exécutant ngnix, passenger, mysql et un dépôt git.
Quelle est la manière la plus simple de le faire?
mise à jour:
Voici mon script deploy: (i remplacé mon domaine réel avec example.com)
set :application, "example.com" set :domain, "example.com" set :scm, :git set :repository, "[email protected]:project.git" set :use_sudo, false set :deploy_to, "/var/www/example.com" role :web, domain role :app, domain role :db, "localhost", :primary => true after "deploy", "deploy:migrate"
Quand je lance deploy cap, tout fonctionne bien jusqu'à ce qu'il tente pour exécuter la migration. Voici l'erreur que je reçois:
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2)) connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2)))
C'est la raison pour laquelle je dois exécuter la migration à partir du serveur et non de ma machine locale.
Des idées?
Eh bien, le nom d'utilisateur de déploiement est le même que mon nom d'utilisateur local. De plus, lorsque je me connecte et exécute la migration via ssh, cela fonctionne correctement. – Pandafox
Hmm. En fait, l'erreur que vous avez posté est sur update_code. Puis-je juste vérifier, votre application est en fait appelée exemple.com, vous avez fait un déploiement de cap: installation et déploiement de cap: vérifier à partir de votre machine locale? example.com est juste quelque chose que vous mettez pour la vie privée ici, je le prends? – mark
Heh, ouais, j'ai remplacé mon vrai domaine avec mon exemple.com pour la vie privée. Le code est bien déployé sur mon serveur, c'est juste que Capistrano essaie d'exécuter la migration sur ma machine locale et non sur le serveur :) – Pandafox