Cela me semble étrange, cette création de modèle, de la migration exécutée, de la détruire et de créer à nouveau la même pièce de rapports de modèle SQL exception: peut-être, je fais quelque chose de mal? La migration a du code pour la suppression de la table - ne peut-il être utilisée que pour la restauration? P> Supprimer la table modèle et la table de base de données et générer un nouveau est assez facile: P> < ol>
Solution H1>
rails g Nom d'utilisateur modèle CODE> LI>
rake dB: migrer code> li>
Rake DB: Migrate: Down Version = 20130417185814 CODE>, où
code> est ID de migration (peut être vu dans Rake DB: migrer: statut) li>
Rails D Modèle utilisateur code> li>
Rails G Modèle Email Email Groupe: Références CODE> LI>
Rake DB: Migrer Code> Li>
ol> p>
3 Réponses :
Vous avez supprimé le modèle - c'est une opération différente que de ramasser une migration. P>
Détruire un modèle fait précisément, et seulement que; Cela n'a rien à voir avec les migrations. P>
Est-ce que je dois créer une migration séparée pour la suppression de la table?
@Drakmail Pourquoi n'était-ce pas dans votre original?
Parce que l'original a été supprimé par des rails D modèle modèleName :) Mais vous m'avez donné une idée. Maintenant, je vois ce flux de travail: 1. Créer le modèle 2. Migrate 3. Rake DB: Migrate: Down Version = 20130417185845 CODE>, WHERE Version de la migration 4. Supprimer le modèle (
Rails D modèle ModelName < / Code>) 5. Maintenant, je peux à nouveau créer un modèle avec le même nom que cette manière est correcte?
rake db:rollback rails d model name
Mais que si je crée un modèle pas dans la dernière migration? J'ai besoin de retourner toutes les migrations après cela? Semble bizarre.
Rake DB: Migrate: Down Version = 20130417185845 CODE> Est-ce que j'ai besoin. Merci :)
Selon votre erreur de migration, il doit y avoir quelque chose de mal avec les fichiers de migration, de plus celui qui se référant à la table de noms. P>
Veuillez consulter ce fichier, à votre méthode de changement. p>
La méthode de changement dans un fichier de migration est censée exécuter un code DB, que le code DB peut effectuer certaines opérations sur la base de données et que le même code sur le changement est censé avoir raison de faire le dos. P>
Si vous souhaitez séparer entre les deux, vous devez mettre le code sur la méthode UP qui effectuera des opérations sur la DB et sur la méthode DOWN Les opérations de roulement opposées. P>
Je suggérerais que vous supprimez tous les fichiers de la migration, y compris celui qui cause le problème, et écrivez-les corrects. P>
Si vous avez besoin d'aide, postez votre fichier de migration. P>
Veuillez également regarder les guides: http://guides.rubyonrails.org/migrations.html p>
Je ne modifie aucune migration - vous pouvez essayer d'exécuter ces commandes: rails g Nom du nom du modèle code>
rake dB: migrer code>
rails D Nom du modèle code>
RAKE DB: Migrate CODE>
RAILS G Nom du modèle Test CODE>
RAKE DB: migrer code> et voir mon résultat.