반응형
Rails 마이그레이션 : 현재 마이그레이션 버전을 검색하는 가장 좋은 방법
마이그레이션 버전 번호를 검색하는 좋은 방법이 있습니까?
특정 마이그레이션 버전에서 다르게 작동하는 모델에서 메서드를 구현해야합니다.
연결 어댑터의 assume_migrated_upto_version이 데이터베이스에서 버전을 검색하고 있지만 다른 버전을 찾을 수 없습니다.
배경 : 테이블 A에서 두 개의 열을 제거하고 테이블 B로 이동하고 테이블 A에서 테이블 B에 연결을 추가하려고합니다.
이 변경 중에이 두 열에 액세스해야합니다. 하지만 그 후에 호환성을 위해 이러한 열에 대한 프록시 메서드를 추가하고 싶습니다.
> ActiveRecord::Migrator.current_version
(0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations"
=> 20120110085802
> ActiveRecord::Migrator.get_all_versions
(0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations"
=> [20111114121610,
20111115091108,
...
훨씬 더 좋은 방법이 있습니다. rake db:migrate:status
up 20120530222941 Create shenanigans
up 20120613030015 *** NO FILE ***
내 최신 마이그레이션 파일을 삭제했음을 나타냅니다.
또는 더 간단하게 :
> rake db:version
Current version: 20120613030015
앱을로드하지 않고이 작업을 수행하지 않으려면 다음과 같은 스크립트를 만들 수 있습니다.
#!/usr/bin/env ruby
root = File.expand_path("../..", __FILE__)
lines = `ls #{root}/db/migrate`
puts lines.split("\n").last.split(" ").last.split("_").first
메모 root
내 스크립트가에 있기 때문에 라인이 bin
DIR
반응형
'Programing' 카테고리의 다른 글
BATCH 파일은 파일 또는 폴더를 요구합니다. (0) | 2020.10.31 |
---|---|
Postgres ENUM 유형 나열 (0) | 2020.10.31 |
JQuery를 사용하여 이벤트를 발생시킨 요소의 클래스 가져 오기 (0) | 2020.10.31 |
Ruby에서 배열에서 해시를 만들려면 어떻게해야합니까? (0) | 2020.10.31 |
Rails 3-페이지 제목을 설정하는 이상적인 방법 (0) | 2020.10.31 |