[ruby-on-rails] 한 번만 마이그레이션

내 레일 앱에서 전체 무리 중 하나의 마이그레이션 만 실행하려고합니다. 어떻게 할 수 있습니까? 이전 또는 이후에 마이그레이션을 실행하고 싶지 않습니다. 감사.



답변

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 용입니다.