8
votes

Supprimer les rails modèle après la migration

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: xxx

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?

Solution

Supprimer la table modèle et la table de base de données et générer un nouveau est assez facile: < ol>

  • Créer un modèle: rails g Nom d'utilisateur modèle
  • Les migrations: rake dB: migrer
  • implémentez quelque chose, rappelez-vous soudainement que vous devez supprimer le modèle
  • réveille une migration spécifique: Rake DB: Migrate: Down Version = 20130417185814 , où est ID de migration (peut être vu dans Rake DB: migrer: statut)
  • Supprimer le modèle: Rails D Modèle utilisateur
  • rappelez-vous soudainement que vous avez besoin de ce modèle, mais avec d'autres champs
  • Créer un modèle: Rails G Modèle Email Email Groupe: Références
  • migrer avec succès la base de données: Rake DB: Migrer

  • 0 commentaires

    3 Réponses :


    4
    votes

    Vous avez supprimé le modèle - c'est une opération différente que de ramasser une migration.

    Détruire un modèle fait précisément, et seulement que; Cela n'a rien à voir avec les migrations.


    3 commentaires

    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 , 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?



    9
    votes
    rake db:rollback 
    rails d model name
    

    2 commentaires

    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 Est-ce que j'ai besoin. Merci :)



    0
    votes

    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.

    Veuillez consulter ce fichier, à votre méthode de changement.

    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.

    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.

    Je suggérerais que vous supprimez tous les fichiers de la migration, y compris celui qui cause le problème, et écrivez-les corrects.

    Si vous avez besoin d'aide, postez votre fichier de migration.

    Veuillez également regarder les guides: http://guides.rubyonrails.org/migrations.html


    1 commentaires

    Je ne modifie aucune migration - vous pouvez essayer d'exécuter ces commandes: rails g Nom du nom du modèle rake dB: migrer rails D Nom du modèle RAKE DB: Migrate RAILS G Nom du modèle Test RAKE DB: migrer et voir mon résultat.