Ruby on Rails : rake db : migrate 마이그레이션을 되돌리려면 어떻게해야합니까?
MODEL User를 설치 한 후 얻었습니다.
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
# t.encryptable
# t.confirmable
# t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
# t.token_authenticatable
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
# add_index :users, :confirmation_token, :unique => true
# add_index :users, :unlock_token, :unique => true
# add_index :users, :authentication_token, :unique => true
end
def self.down
drop_table :users
end
end
이제 rake db : migrate를 수행하면 사용자 테이블이 생성됩니다.
이 마이그레이션을 되돌릴 수있는 방법, 즉 rake를 사용하여 사용자 테이블을 다시 작성 수있는 방법은 무엇입니까?
다음 명령을 실행하십시오.
rake db:migrate:down VERSION=<version>
<version>
되 돌리 마이그레이션 마이그레이션 파일의 버전 번호는 어디에 있습니까?
예. 파일 이름이 3846656238_create_users.rb 인 마이그레이션 되돌리려는 경우
rake db : 마이그레이션 : 다운 VERSION = 3846656238
다음 명령을 실행하십시오.
rake db:rollback
마이그레이션은 데 사용할 수있는 세 가지 옵션이 있다는 생각합니다 (중복도 있음).
가장 최근 마이그레이션 을 롤 다운합니다 .
rake db:migrate:down
# Rails 2는 해당됩니다.최근 마이그레이션 횟수 (n)를 롤 다운 합니다.
rake db:rollback STEP=n
아래로 롤 에 이전, 특정 버전 :
$ rake db:migrate:down VERSION=nnn
# Rails 3 (버전 번호도 제공).
버전 번호는 커밋에 대한 SHA (Secure Hash Algorithm)를 의미하며 886af3194768917c78e와 같은 긴 16 진수입니다. 다음을 수행하여 확인할 수 있습니다. git log
rake -T db:
레일 3.2에 포함되는 항목을 사용하여 설명과 함께 이러한 명령 (및 기타)을 볼 수 있습니다 .
rake db:migrate # Migrate the database (options: VERSION=x, VERBOSE=false)
rake db:migrate:status # Display status of migrations
rake db:rollback # Rolls the schema back to the previous version (specify steps w/ STEP=n)
롤백을 수행하고 롤백 할 마지막 마이그레이션 수를 지정할 수 있습니다. 예 :
rake db:rollback STEP=3
마지막 마이그레이션 3 회
rake db:migrate:redo
마지막 마이그레이션을 실행 취소하고 다시 적용합니다.
새로운 프로그래머 (또는 다른 새로운 프로그래머)
rake db:rollback
절반 정도 작동합니다. 나는 거기서 시작한다.
그렇지 않다면 rake db:migrate:down VERSION=3846656238
되돌리려는 마이그레이션 파일의 버전 번호에 VERSION을 연결하십시오.
레일 5의 경우 다음을 사용할 수 있습니다. rails command instead of rake
rails db:migrate:down VERSION=<version>
예
rails db : migrate : down VERSION = 20170330090327
터미널에서 다음 명령을 실행하십시오.
rake db:migrate:status
또는
bundle exec rake db:migrate:status
이전에 실행 한 모든 마이그레이션의 상태, 마이그레이션 ID, 마이그레이션 이름을 보여줍니다. 마이그레이션 ID (예 : 버전 번호)를 선택하고 다음 명령에서 version = 뒤에 해당 ID를 입력하고 Enter 키를 누릅니다.
bundle exec rake db:migrate:down VERSION=
마이그레이션을 롤백하는 방법
(1) 먼저 마이그레이션 ID 식별
rake db:migrate:status
- ID 번호를 복사하십시오.
(2) 그런 다음 마이그레이션 롤백
rake db:migrate:down VERSION=20190802023239
- 위의 관련 ID 번호를 붙여 넣으십시오. 물론 귀하의 경우 마이그레이션 ID가 다릅니다! 올바른 마이그레이션 ID를 사용하십시오.
....... 그리고 이제 당신은 경주를 시작합니다!
'IT' 카테고리의 다른 글
Python의 네트워크에 IP가 어디에 있는지 확인할 수 있습니까? (0) | 2020.09.08 |
---|---|
Eclipse에서 AVD 또는 SDK 관리자를 사용할 수 없습니다. (0) | 2020.09.08 |
모바일 사파리 탭과 같은 UIScrollView 수평 페이징 (0) | 2020.09.08 |
SQL Server에서 bigint (UNIX 타임 스탬프)를 datetime으로 변환해야합니까? (0) | 2020.09.08 |
mongodb에 강력하지 않습니다. errno : 61 연결이 거부되었습니다. (0) | 2020.09.08 |