devise 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 : migrate : down 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:
rails 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:rollback
절반 정도 작동합니다. 나는 거기서 시작한다.
그렇지 않다면 rake db:migrate:down VERSION=3846656238
되돌리려는 마이그레이션 파일의 버전 번호에 VERSION을 연결하십시오.
답변
rake db:migrate:redo
마지막 마이그레이션을 실행 취소하고 다시 적용합니다.
답변
레일 5의 경우 다음을 사용할 수 있습니다. rails command instead of rake
rails db:migrate:down VERSION=<version>
예
rails db : migrate : down VERSION = 20170330090327