Quelle est la bonne approche pour traiter les Rails db/schema.rb fichier GIT?
Devrions-nous inclure schema.rb
alors que la validation de la commande GIT? ou devrions-nous l'ignorer? quelle est la bonne approche?
- double possible de Quelle est la meilleure façon de gérer schéma.rb dans git?
Vous devez vous connecter pour publier un commentaire.
Bien la norme
schema.rb
fichier pour Rails 2 a à la fin du bloc de commentaire au début du fichier:Les Rails 3
schema.rb
que j'ai des coups de pied autour, dit la même chose. Je pense que le commentaire dit tout.Mise à jour en réponse aux commentaires:
Oui, des erreurs peuvent être commises et vous pouvez obtenir des conflits de modifications et de bugs modificateur de votre
schema.rb
mais c'est pourquoi vous le voulez en cours de révision, de contrôle, de révision, de contrôle permet de garder une trace de tout et de sauvegarde en cas de besoin. Il n'y a qu'une seule chose dans l'ensemble de votre arborescence des sources qui spécifie votre schéma de base de données et qui estschema.rb
. Votre schéma de base de données est absolument critique de l'artefact et de tout ce qui important, il doit être suivi dans le contrôle de révision.Toute mise à jour/problèmes de fusion avec
schema.rb
devrait être réglé simplement en triant vos contradictoires migrations pourschema.rb
sera corrigé comme un effet secondaire de corriger le problème réel.Oui,
schema.rb
est un fichier généré, mais il n'est généré dans le sens que votre éditeur de texte génère votrepancakes.rb
fichier de modèle ou d'une inédite échafaudage fichier est généré.Oui, vous pouvez reconstruire votre
schema.rb
fichier par la construction d'une nouvelle base de données et l'exécution de toutes les opérations de migration. Mais, vous devez effacer votre ancien migrations maintenant et puis pour éviter d'avoir à vérifier des centaines de migration de fichiers chaque fois que vousrake db:migrate
afin de "reconstruire et exécuter tous les migrations" n'est souvent pas une option dans un très actif du projet.rake db:migrate
de faire de la bd locale uptodate.Cela permettra de mettre à jour leschema.rb
fichier et peut entraîner une erreur en tirant à partir de gitschema.rb
oustructure.sql
qui n'a pas été résolu par le tri des migrations.Oui. Le fichier de schéma est utilisé pour configurer votre base de données lors de l'utilisation de rake db:réinitialisation et d'autres commandes. Les Migrations ne doit être utilisé lors de la modification du schéma de base de données et sera toujours le résultat dans un nouveau fichier de schéma.
Bien, il n'est pas inclus sur .gitignore par défaut. Donc, je pense que vous n'auriez pas un problème, dont il(je n'ai dans mes projets, sans aucun problème).
Je ne commettent pas de ce fichier Git, car il créer lorsque je lance
rake db:migrate
.Si je vais commettre ce fichier Git, je ne peux pas tirer de nouvelles modifications du serveur après chaque
db:migrate
.schema.rb
ne correspond pas à ce qui est généré par les opérations de migration, alors vous avez un autre problème que vous êtes ignorant par ne pas s'engagerschema.rb
schema.r
git, mais ce que j'ai à faire, lorsque vous exécutez dansdevelopment
de l'environnement derake db:migrate
et puis aussi dansproduction
de l'environnement???rake db:migrate
dans la production, ce qui permettra de comparer lesschema_migrations
table à votredb/migrate
répertoire pour voir ce qui doit être exécuté pour apporter votre base de données de production jusqu'à ce jour.