[ruby-on-rails] 특정 마이그레이션을 롤백하는 방법은 무엇입니까?

다음 마이그레이션 파일이 있습니다 db\migrate\20100905201547_create_blocks.rb

해당 마이그레이션 파일을 구체적으로 롤백하려면 어떻게해야합니까?



답변

rake db:rollback STEP=1

롤백하려는 마이그레이션이 마지막으로 적용된 경우이를 수행하는 방법입니다. 되돌아 가고 싶은 많은 마이그레이션을 1 대신 사용할 수 있습니다.

예를 들면 다음과 같습니다.

rake db:rollback STEP=5

또한 나중에 발생한 모든 마이그레이션 (4, 3, 2 및 1)을 롤백합니다.

대상 마이그레이션으로 (그리고 포함하여) 모든 마이그레이션을 롤백하려면 다음을 사용하십시오.

rake db:migrate VERSION=20100905201547

하나의 특정 마이그레이션 (OUT OF ORDER) 만 롤백하려면 다음을 사용하십시오.

rake db:migrate:down VERSION=20100905201547

이렇게하면 진행중인 마이그레이션이 롤백되지 않으며 나열된 마이그레이션 만 롤백됩니다. 이것이 의도 한 것이 아닌 경우 안전하게 실행할 수 rake db:migrate있으며 이전에 롤백되지 않은 다른 항목은 건너 뛰고 해당 항목 만 다시 실행합니다.

단일 마이그레이션을 순서대로 마이그레이션하지 않으려는 경우에는 반대의 결과도 있습니다 db:migrate:up.

rake db:migrate:up VERSION=20100905201547


답변

rake db:migrate:down VERSION=20100905201547

특정 파일을 롤백합니다.


모든 마이그레이션 버전을 찾으려면 다음 명령을 사용할 수 있습니다.

rake db:migrate:status

또는 단순히 마이그레이션 파일 이름의 접두사가 롤백해야하는 버전입니다.


마이그레이션 에 대한 Ruby on Rails 안내서 항목 을 참조하십시오 .


답변

마지막 마이그레이션을 롤백하려면 다음을 수행하십시오.

rake db:rollback

버전으로 특정 마이그레이션을 롤백하려면 다음을 수행하십시오.

rake db:migrate:down VERSION=YOUR_MIGRATION_VERSION

예를 들어 버전이 20141201122027 인 경우 다음을 수행하십시오.

rake db:migrate:down VERSION=20141201122027

특정 마이그레이션을 롤백합니다.


답변

rake db:rollback다른 옵션과 함께 사용하여 마이그레이션을 롤백 할 수 있습니다. 구문은 요구 사항에 따라 다릅니다.

마지막 마이그레이션 만 롤백하려면 다음 중 하나를 사용할 수 있습니다.

rake db:rollback

또는

rake db:rollback STEP=1

롤백 횟수의 마이그레이션을 한 번에 수행하려면 인수를 전달하면됩니다.

rake db:rollback STEP=n

어디 n롤백에 대한 마이그레이션의 수는 최근 마이그레이션에서 계산이다.

특정 마이그레이션으로 롤백하려면 다음에서 마이그레이션 버전을 전달해야합니다.

rake db:migrate:down VERSION=xxxxx

여기서 xxxxx는 마이그레이션의 버전 번호입니다.


답변

rake db:migrate:down VERSION=your_migrations's_version_number_here

버전은 마이그레이션 파일 이름의 숫자 접두사입니다.

버전을 찾는 방법 :

마이그레이션 파일은 rails_root/db/migrate디렉토리에 저장됩니다 . 롤백 할 적절한 파일을 찾고 접두사 번호를 복사하십시오.

예를 들어

파일 이름 : 20140208031131_create_roles.rb
그러면 버전은20140208031131


답변

마지막 마이그레이션 롤백 :

# rails < 5.0
rake db:rollback

# rails >= 5.0
rake db:rollback
# or
rails db:rollback

마지막 n마이그레이션 횟수 롤백

# rails < 5.0
rake db:rollback STEP=2

# rails >= 5.0
rake db:rollback STEP=2
# or
rails db:rollback STEP=2

특정 마이그레이션 롤백

# rails < 5.0
rake db:migrate:down VERSION=20100905201547

# rails >= 5.0
rake db:migrate:down VERSION=20100905201547
# or
rails db:migrate:down VERSION=20100905201547


답변

마지막 마이그레이션을 롤백하려면 다음을 수행하십시오.

rake db:rollback

버전으로 특정 마이그레이션을 롤백하려면 다음을 수행하십시오.

rake db:migrate:down VERSION=YOUR_MIGRATION_VERSION

롤백하려는 마이그레이션 파일이 호출 된 경우 해당 마이그레이션 db/migrate/20141201122027_create_some_table.rb의 버전은 해당 마이그레이션이 20141201122027작성된 시간 소인이며 마이그레이션을 롤백하는 명령은 다음과 같습니다.

rake db:migrate:down VERSION=20141201122027