Comment puis-je exécuter une migration à nouveau, sans la suppression de toutes les nouvelles migrations?
J'avais juste installé concevoir de sorte que le tableau n'ai pas de données sur elle, sauf un utilisateur (moi).
J'ai été re-faire la base de données de tout recommencer alors j'ai laissé tomber tous. Je n'ai rails g scaffold
pour générer des 6 nouveaux modèles et des contrôleurs qui n'a rake db:migrate
Dans mon /db/migrate
répertoire, j'ai le concevoir fichier avec le nom de fichier 20130603211907_devise_create_users.rb
Voici la question: Si je ne rake db:migrate:down VERSION=20130603211907
il va supprimer toutes les nouvelles migrations.
Comment puis-je exécuter une migration à nouveau, sans la suppression de toutes les nouvelles migrations?
- Je vais essayer de
rake db:migrate
après la modification de l'horodatage sur les migrer et de voir ce qui se passe. - haha c'est ce que j'ai fait aussi. Je suis en dev et personne ne paie pour mon produit, donc je ne recommanderais pas cela d'une autre façon.
Vous devez vous connecter pour publier un commentaire.
Si vous êtes le développement local et il ne serait pas mal pour supprimer toutes les données à partir de vos modèles, vous pourriez tout simplement
drop
votre base de données et puiscreate
&migrate
à partir de zéro:De Purge ou de recréer un Rubis sur des Rails de la base de données
Il sera exécuté le bas puis le haut de l'étape (Cette commande peut tomber votre table!):
rake db:migrate:redo VERSION=xxxxxxx
Pour éviter que votre suppression de la table que vous pourriez faire ceci en conjonction avec en commentant la
down
étape temporairement.rake db:migrate:status
.Merci pour l'aide tout le monde. C'est ce qui a fonctionné pour moi:
AVERTISSEMENT: ces commandes permet d'effacer toutes les données dans votre base de données!
rails db:migrate
et il n'a pas l'effacer de ma base de données 🙂 juste pour la mise à jourVous pouvez appeler
rake db:migrate:redo VERSION=20130603211907
qui en reprise la version spécifiée.Aussi, si vous avez des migrations qui doit s'exécuter uniquement en remontant la chaîne de migration (par exemple, la transformation de données, la copie, etc.), vous pouvez spécifier un
et def bas (descendre), def changement (dans les deux sens) méthode respectivement.
Pour désactiver temporairement les migrations, juste, par exemple, renommer la méthode
def up
àdef up_
et il sera ignoré lors du traitement de la chaîne de migration.change_column
.cela va migrer tous les fichiers jusqu'à VERSION=20090408054532
caisse Exécuter un seul fichier de migration