내 레일 앱에서 전체 무리 중 하나의 마이그레이션 만 실행하려고합니다. 어떻게 할 수 있습니까? 이전 또는 이후에 마이그레이션을 실행하고 싶지 않습니다. 감사.
답변
rake db:migrate:redo VERSION=xxxxxxx
,하지만 down
그러면 up
단계 가 실행됩니다 . 일시적으로 다운 단계를 주석 처리하는 것과 함께이 작업을 수행 할 수 있습니다.
답변
rake db:migrate:up VERSION=1234567890
유사하게 rake db:migrate:down
특정 마이그레이션을 중단합니다. 사용 가능한 레이크 작업 목록은 rake -T
.
답변
변경된 단일 마이그레이션을 실행해야했고 다른 모든 마이그레이션과 독립적으로 다시 실행해야했습니다. 콘솔을 시작하고 다음을 수행하십시오.
>> require 'db/migrate/your_migrations.rb'
=> ["YourMigrations"]
>> YourMigrations.up
=> etc... as the migration runs
>> YourMigration.down
더 유용하게 이것은 레이크 작업 등에 넣을 수 있습니다.
답변
rake db:migrate:up VERSION=version_no
특정 마이그레이션 스크립트를 마이그레이션 (추가)합니다.
rake db:migrate:down VERSION=version_no
특정 마이그레이션 스크립트를 삭제합니다.
답변
rake db:migrate VERSION=20098252345
시도해보세요.
답변
rake db:migrate:redo version='xxxx'
xxxx를 따옴표로 묶어야합니다. xxxx는 마이그레이션의 타임 스탬프 (또는 마이그레이션 ID)입니다.
다음을 사용하여 이전에 수행 한 마이그레이션에 대한 타임 스탬프 (마이그레이션 ID)를 확인할 수 있습니다.
rake db:migrate:status
답변
위의 korch의 답변을 확장하면 require
저에게는 효과가 없었지만 효과 load
가있었습니다. 구체적으로 마이그레이션 파일의 경우 :
class ChangeMinQuantityToRaces < ActiveRecord::Migration
def change
change_column :races, :min_quantity, :integer, :default => 0
end
end
콘솔 타이핑에서
> load 'db/migrate/30130925110821_change_min_quantity_to_races.rb'
> ChangeMinQuantityToRaces.new.change
나를 위해 일했습니다.
> Race.new.min_quantity # => 0
루비 1.9.3p484 (2013-11-22 개정 43786) [x86_64-linux] 및 Rails 3.2.13 용입니다.