Hvordan tilbakestille en bestemt migrering?

Jeg har følgende migreringsfil db\migrate\20100905201547_create_blocks.rb.

Hvordan kan jeg spesifikt tilbakestille denne migreringsfilen?

Løsning
rake db:rollback STEP=1

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:

rake db:rollback STEP=5

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).

rake db:migrate VERSION=20100905201547

For å tilbakestille BARE EN bestemt migrering (UTENFOR ORDEN), bruk:

rake db:migrate:down VERSION=20100905201547

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.

Kommentarer (7)
rake db:migrate:down VERSION=20100905201547

vil rulle tilbake den spesifikke filen.


For å finne versjonen av alle migreringene kan du bruke denne kommandoen:

rake db:migrate:status

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.

Kommentarer (10)

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

rake db:rollback

eller

rake db:rollback STEP=1

Hvis du vil tilbakestille flere migreringer samtidig, oppgir du bare et argument:

rake db:rollback STEP=n

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:

rake db:migrate:down VERSION=xxxxx

der xxxxx er versjonsnummeret til migreringen.

Kommentarer (1)