2009-10-20 4 views
11

J'ai réussi à déployer mon application en production en utilisant Capistrano, mais je ne comprends pas comment gérer ma base de données. J'utilise subversion et passager. Lorsque j'exécute le déploiement de majuscules, le nouveau déploiement démarre tout nouveau. Il efface les données qui ont été ajoutées à la base de données. Évidemment, il doit y avoir une solution, mais je suis très surpris de ne rien trouver en ligne sur la façon de gérer cela. J'ai lu la documentation de Capistrano et de nombreux tutoriels. Le meilleur que je peux trouver est les livres de recettes Advanced Rails, qui parle de mettre du contenu généré par l'utilisateur dans le répertoire partagé, mais ce n'est pas exactement sur le point.Base de données Capistrano Deploy Wipes?

Comment gérez-vous votre base de données lors du déploiement avec Capistrano?

+0

Comment est votre base de données? SQLite? –

Répondre

24

Vous utilisez SQLite et vous conservez la base de données à l'emplacement par défaut. Votre base de données n'est pas en train d'être supprimée.

Vous devez éditer votre database.yml et lui dire de garder votre base de données de production dans un emplacement partagé "../../shared/database.yml" ou similaire (vous pouvez être mieux d'utiliser un chemin absolu, ou pour des points bonus MySQL). Lorsque vous déployez via capistrano, il crée une nouvelle copie de votre application dans un répertoire horodaté. Votre base de données est laissée dans l'ancien répertoire horodaté.

+0

Ah! Ok, oui j'étais sur le point de passer à mysql, mais j'ai utilisé sqlite pour le développement et je l'ai fait pour la première fois avec sqlite. On dirait qu'il est temps de passer à mysql. Merci. – MikeH

+0

Passé à mysql, et tout fonctionne très bien. C'était le problème. – MikeH

+0

Bonnes choses! Merci de l'acceptation! – cwninja