J'ai récemment écrit quelques migrations qui tombent sous le parapluie Migration irréversible. Mais ils ne sont pas la fin du monde irréversible. Tu pourrais les renvoyer si tu veux. Le scénario que j'ai en ce moment est en train de changer une relation de un à plusieurs en une relation de plusieurs à plusieurs. Cela implique de déposer une colonne et de créer une nouvelle table de jointure. (ainsi que deux lignes dans les modèles). Je pensais, au lieu d'abandonner la migration vers le bas, je pourrais dire quelque chose comme "Cette migration est [INSÉRER MESSAGE SCARY ICI], êtes-vous sûr de vouloir continuer" Y/N "et ensuite annuler la migration si ils choisissent de? Juste mettre la migration dans une déclaration if?Migrations irréversibles - avertissement et confirmation au lieu d'abandonner?
Il est assez facile de rendre les migrations irréversibles, et il y a généralement de bonnes raisons (par exemple, les données ne peuvent pas être récupérées). Ces problèmes sont-ils généralement résolus en écrivant simplement une migration qui le fait manuellement?
Dans mon esprit noobish ce serait bien d'avoir un juste milieu. Est-ce sage? Peut-être que je ne comprends tout simplement pas quand les rendre non réversibles en premier lieu.
« Il est beaucoup plus sûr pour vous, la personne qui écrit le modèle de données change pour savoir comment revenir à l'état précédent au lieu de deviner ". Exactement! C'est pourquoi j'ai été un peu surpris que cette option ne soit pas déjà disponible - comme il est tout à fait possible que quelqu'un ne fasse que contourner l'exception que vous écrivez. – Nick
Ruby a très peu de règles. Considérez: http://gfredericks.com/gfrlog/post/51 Donc, nous comptons sur le bon sens, la convention, et de bons tests :) –