Disons que j'ai utilisé la commande suivante pour créer un modèle "utilisateur": ceci crée le fichier user.rb avec le fichier RB migration pour créer la table des utilisateurs. Maintenant, je veux ajouter une colonne de messagerie à mon modèle utilisateur. Quelle est la meilleure façon de faire ça? Est-ce que je le fais manuellement et écrivez le fichier de migration à la main ou existe-t-il un raccourci pour le faire? Si j'écris la migration à la main, dois-je nommer la même manière que le script de migration précédent (avec un horodatage devant) afin de garantir qu'il s'exécute après la migration précédente? P> P>
3 Réponses :
Le Guide contient des informations sur la génération de migrations. Si vous utilisez le générateur de rails, il créera des fichiers nommés correctement:
ruby script/generate migration AddEmailToUser email:string
Eh bien, vous pouvez faire deux choses: p>
1) Si vous n'avez pas encore déployé cela n'importe où ou que vous ne vous dérangeez pas de jeter la base de données et d'exécuter vos migrations à nouveau, puis modifiez le fichier. Retirez les tables de votre DB et exécutez DB: migrer. Facile à faire cela dans le développement. P>
2) Si cette application est en production ou si vous ne voulez pas laisser tomber toutes vos tables. Ensuite, créez un nouveau fichier de migration. Ensuite, dans cette nouvelle migration ajouter / modifier / déposer la colonne. Ensuite, exécutez DB: migrer et les nouvelles modifications prendront effet dans votre table. C'est la meilleure pratique. P>
En ce qui concerne la nommage de votre migration, les horodatages sont utilisés car les rails créeront une table qui empêche la trace des dernières migrations. Pour cela, il est préférable d'utiliser les horodatages. Mais si vous choisissez, vous pouvez utiliser votre propre convention au lieu d'horodatages. Peut-être nommer-leur 001_migration.rb, 002_migration.rb, etc. p>
espère que cela aide. p>
Ne vous inquiétez pas de l'horodatage. Il sera généré automatiquement.
Vous pouvez faire un ceci créerait automatiquement un fichier de migration qui ressemblerait à ceci: p> Le fichier aurait l'horodatage Le format yyyymmddhhmmss code> (pour les rails 2.1 et ci-dessus) ajouté devant le nom de fichier. p> p>