Jak cofnąć tylko jeden krok za pomocą rake db:migrate

Po dodaniu plików migracji do folderu db/migrate i uruchomieniu rake db:migrate, chcę wrócić do poprzedniego kroku, myślę, że użycie VERSION=n jest właściwym sposobem, ale nie znam prawidłowej wartości n do użycia. Czy jest jakieś polecenie, aby sprawdzić aktualną wartość n?

Byłoby wspaniale, gdyby ktoś mógł podać pełną instrukcję obsługi rake db:migrate.

Author: Ajedi32, 2010-12-04

5 answers

Na początek

rake db:rollback will get you back one step

Then

rake db:rollback STEP=n

Cofnie cię n migracje gdzie n jest liczbą ostatnich migracji, które chcesz cofnąć.

Więcej odniesień tutaj .

 298
Author: rwilliams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-22 15:58:19

Cofnij ostatnią migrację:

rake db:rollback

Cofnij ostatnie migracje:

rake db:rollback STEP=n

Pełne instrukcje dotyczące wykorzystania zadań migracji Rake ' a można znaleźć w Rails Guide do uruchamiania migracji.


Oto jeszcze:

  • rake db:migrate - Uruchom wszystkie migracje, które nie zostały jeszcze uruchomione
  • rake db:migrate VERSION=20080906120000 - Uruchom wszystkie niezbędne migracje (w górę lub w dół), aby dostać się do podanej wersji
  • rake db:migrate RAILS_ENV=test - Run migracje w danym środowisku
  • rake db:migrate:redo - Cofnij jedną migrację i uruchom ją ponownie
  • rake db:migrate:redo STEP=n - Cofnij Ostatnie migracje n i uruchom je ponownie
  • rake db:migrate:up VERSION=20080906120000 - Uruchom metodę up dla danej migracji
  • rake db:migrate:down VERSION=20080906120000 - Uruchom metodę down dla danej migracji

I aby odpowiedzieć na twoje pytanie, skąd masz numer wersji migracji:

Wersja jest prefiksem liczbowym na migracji nazwa pliku. Na przykład, aby przejść do wersji 20080906120000 Uruchom

$ rake db:migrate VERSION=20080906120000

(z uruchamianie migracji w prowadnicach Rails)

 77
Author: Ajedi32,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-14 16:53:39

Najlepszym sposobem jest ponowne uruchomienie danej migracji poprzez użycie down lub up(w rails 4. To zmiana)

Rails db:migrate: up VERSION=timestamp

Teraz jak masz znacznik czasu. Przejdź do tej ścieżki

/db / migrate

Zidentyfikuj plik migracji, który chcesz przywrócić.wybierz znacznik czasu z nazwy pliku.

 7
Author: Hemali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-10 05:16:09

Inni ludzie już ci odpowiedzieli, jak wycofać migrację, ale zapytałeś również, jak możesz zidentyfikować numer wersji migracji.

  • rake db:migrate:status wyświetla listę wersji, nazwy i statusu migracji (w górę lub w dół)
  • Możesz również znaleźć plik migracji, który zawiera znacznik czasu w nazwie pliku, czyli numer wersji. Migracje znajdują się w folderze: /db/migrate
 1
Author: Bjarne Dideriksen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-20 08:29:04

Jeśli Wersja to 20150616132425, Użyj:

rails db:migrate:down VERSION=20150616132425
 0
Author: Đoàn Nghĩa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-25 04:56:16