2010-08-15 5 views
2

레일스 어플리케이션의 개발 초기 단계에서 마이 그 레이션 파일을 직접 수정하여 마이 그 레이션 파일을 직접 테이블 (모델)에 새 컬럼 (필드)을 추가하여 마이 그 레이션 파일을 필드를 변경하거나 사소한 변경을 할 수 있습니다.레일 : 초기 개발 단계에서 마이 그 레이션 수정

레일스에서도 가능합니까?

답변

3

깨끗한 솔루션은 레이크 작업을 생성하는 것입니다 수 쉘 aliase를 사용

rake db:drop db:create db:migrate db:seed 

을 그것 모든 이전 마이그레이션을 다시 실행하십시오.

9

아마 당신이하고 있다는 사실은 그것이 가능하다는 것을 나타냅니다!

+0

당신은 나를 웃게 만들었습니다. –

8

이 문제를 해결하려면 다음 명령을 실행하십시오. 스크립트로 저장하면 갈 준비가되었습니다! 물론, 이것은 데이터 손실이 문제가 없다고 추정합니다. 조명기를 로딩하면 어떤 경우에도이 스크립트에 쉽게 추가 할 수 있습니다.

#!/bin/sh 
rake db:drop 
rake db:create 
rake db:migrate --trace 

PS : 나에게이 아이디어를 준 내 친구가이 스크립트 rake_dance :

+0

이것은 나를 위해 일한 것입니다. 감사. –

0

나는 신속로 데이터베이스를 삭제 한 후 응용 프로그램에 대한 샘플 데이터를 다시 허용하는 (이 방법을 촬영할 때기구를 사용하는 것이 좋습니다 호출 재현). 다른 옵션은 http://datamapper.org/ (마이그레이션이 필요 없음)입니다.

namespace :db do 
    desc "Drops, recreates and seeds the database." 
    task :reload => [:drop, :create, :migrate, :seed] do 
    Rake::Task['db:drop'].invoke 
    Rake::Task['db:create'].invoke 
    Rake::Task['db:migrate'].invoke 
    Rake::Task['db:seed'].invoke 
    end 
end 
0

우리가 하나의 명령에 모든 것을 결합 할 수 있습니다 밖으로 찾을 : 비제이 데브의 솔루션에서 구동

+1

이것은 rake db : setup이하는 일입니다. – ybakos

1

db : 재설정은 오마르가 제안한 바를 수행합니다.

관련 문제