Hvordan tilbakestille en bestemt migrering?
Jeg har følgende migreringsfil db\migrate\20100905201547_create_blocks.rb
.
Hvordan kan jeg spesifikt tilbakestille denne migreringsfilen?
759
3
Jeg har følgende migreringsfil db\migrate\20100905201547_create_blocks.rb
.
Hvordan kan jeg spesifikt tilbakestille denne migreringsfilen?
er en måte å gjøre dette på hvis migreringen du vil tilbakestille, er den siste som ble brukt. Du kan erstatte 1 med så mange migreringer du ønsker å gå tilbake.
For eksempel:
Vil også tilbakestille alle migreringene som skjedde senere (4, 3, 2 og også 1).
Hvis du vil tilbakestille alle migreringer tilbake til (og inkludert) en målmigrering, bruker du: (Denne korrigerte kommandoen ble lagt til ETTER alle kommentarene som påpekte feilen i det opprinnelige innlegget).
For å tilbakestille BARE EN bestemt migrering (UTENFOR ORDEN), bruk:
Vær oppmerksom på at dette IKKE vil tilbakestille eventuelle mellomliggende migreringer - bare den som er oppført. Hvis det ikke var det du ønsket, kan du trygt kjøre
rake db:migrate
, så kjører den bare den ene på nytt og hopper over alle andre som ikke ble tilbakestilt tidligere.vil rulle tilbake den spesifikke filen.
For å finne versjonen av alle migreringene kan du bruke denne kommandoen:
Eller du kan ganske enkelt bruke prefikset i filnavnet til migreringen som den versjonen du trenger for å tilbakestille.
Se oppføringen i Ruby on Rails-guiden om migrering.
Du kan tilbakestille migreringen ved å bruke
rake db:rollback
med forskjellige alternativer. Syntaksen vil variere i henhold til dine behov.Hvis du bare vil tilbakestille den siste migreringen, kan du bruke enten
eller
Hvis du vil tilbakestille flere migreringer samtidig, oppgir du bare et argument:
der
n
er antall migreringer som skal tilbakestilles, regnet fra siste migrering.Hvis du vil tilbakestille til en bestemt migrering, må du oppgi versjonen av migreringen i det følgende:
der xxxxx er versjonsnummeret til migreringen.