2012-12-31 6 views
0

이것은 쉘 스크립팅 관련 질문이지만 레일과 관련이 있습니다.하나의 명령으로 레일스 마이그레이션 파일을 편집하십시오.

나는이 같은 레일 마이그레이션을 만들 : 다음 마이그레이션 스크립트를 생성하고, 콘솔에 다시 이름을보고

~/dropbox/rails/f6$ rails g migration ModifyWord 

레일

가 :

~/dropbox/rails/f6$ rails g migration ModifyWord 
     invoke active_record 
     create db/migrate/20121231080052_modify_word.rb 

그때 VI를 사용하여 마이그레이션 파일을 편집 , 다음과 같이하십시오 :

~/dropbox/rails/f6$ vi db/migrate/20121231080052_modify_word.rb 

vi를 수행 할 수 있기를 원합니다. 파일 이름을 하나의 명령으로, 아마도 내 .bash_rc에 추가 된 별명을 가질 수있는 쉘 스크립트를 통해.

즉, 마이그레이션 후 명령을 실행하면보고 된 파일 이름이 표시됩니다.

어떻게 접근해야합니까?

솔루션

의 Michaël Witrant의 제안 당을 기반으로는, 내 bash는 프로필에 별명을 추가했습니다. 고양이에

  • cm 마지막으로 생성 된 마이그레이션 파일
  • VM

    별명 cm = '고양이 ls db/migrate/*.rb | tail -n 1'

    별명의 VM =의 'VI의 경우 마지막으로 생성 된 마이그레이션 파일을 VI의 ls db/migrate/*.rb | tail -n 1 '

답변

3

은 타임 스탬프로 시작하기 때문에 단순히 같은 것을 할 거라고, 그래서 항상 순으로 마지막 파일이어야한다 : 당신의 대답에 대한

vi `ls db/migrate/*.rb | tail -n 1` 
+0

그게 좋습니다! 고마워. 내가 시도해보고 별칭으로 만들거야. 건배. – ardochhigh

2

이에 익숙해 위치 :

rails generate migration AddDetailsToProducts part_number:string price:decimal 

마이그레이션 파일이 생성됩니다 :

class AddDetailsToProducts < ActiveRecord::Migration 
    def change 
    add_column :products, :part_number, :string 
    add_column :products, :price, :decimal 
    end 
end 

그래서, 별도로 마이그레이션 파일을 편집 할 필요가 없습니다.

+0

감사합니다. 예 저는 전체 구문에 익숙합니다. 동일한 테이블에서 모두 이름을 추가, 제거 및 이름을 변경했습니다. – ardochhigh

관련 문제