2012-04-15 3 views
1

마이 그 레이션을 통해 테이블에 일부 필드를 추가 할 때 레일스에 스키마의 맨 위에 id 열과 하단에 timepstamp를 유지하도록 지시 할 수 있습니까?스키마 필드가 레일 마이 그 레이션시에 정렬

콘솔에서 레일을 사용할 때이 필드를 항상 같은 위치에 두는 것이 좋습니다. schema.rb에서 순서를 바꾸고 다시로드하는 것이 가능하다는 것을 알고 있지만 적합한 클리너 방식을 찾고 있습니다. 생산 환경도.

당신을 감사

+0

열 순서는 중요하지 않습니다. 그렇게한다면, 당신은 잘못하고있는 것입니다. –

+1

@SergioTulentsev martin-dempesy를 인용하겠습니다 : 체계적인 방식으로 데이터를 보는 것은 모든 DB UI (속도 나 성능에는 영향을 미치지 않음)를 통해 데이터를 검토하는 데 유용합니다. –

+0

일부 DB UI를 사용하면 열 순서를 쉽게 바꿀 수 있습니다. Navicat에서 드래그 앤 드롭합니다. – Engwan

답변

4

할 수 있습니다이 같은 (MySQL은 아마 현재 만) 2.3.6+ 레일에서 :

add_column :table_name, :column_name, :column_type, after: :other_column_name 

또는

change_table :the_table do |t| 
    t.column_type :column_name, after: :other_column_name 
end 

출처 :
- In a Rails Migration (MySQL), can you specify what position a new column should be?
- https://rails.lighthouseapp.com/projects/8994/tickets/3286-patch-add-support-for-mysql-column-positioning-to-migrations

0

db/schema.rb 파일을 생성하는 동안 열을 사전 순으로 자동 정렬하는 fix-db-schema-conflicts 보석에 관심이있을 수 있습니다.

타임 스탬프는 반드시 목록의 마지막 항목 일 필요는 없지만 스키마는 마이그레이션에 의해 추가 된 순서에 의존하지 않습니다.

관련 문제