[ruby-on-rails] 마이그레이션 파일 생성 중 기본값 할당

rails generate migration AddRetweetsCountToTweet retweets_count:integer 

좋아, 위의 줄을 사용하여 생성 된 파일에서 자동으로 코드를 생성하는 마이그레이션 파일을 생성하여 데이터 유형이 정수인 모델 트윗에 열을 추가합니다. 이제 마이그레이션 파일을 생성하는 동안 추가 된 열에 기본값을 추가하고 싶습니다. 가능합니까? 나는 그것을 봤지만 찾을 수 없었다. 사람들은 도움이 필요합니다.



답변

기본 마이그레이션 생성기 (기본 값을 처리하지 않습니다 열 수정은 지원하지만 할 수 있습니다 포함되지 defaultnull),하지만 당신은 당신의 자신의 발전기를 만들 수 있습니다.

rake db:migrate다음에 옵션을 추가하여 실행하기 전에 마이그레이션 파일을 수동으로 업데이트 할 수도 있습니다 add_column.

add_column :tweet, :retweets_count, :integer, :null => false, :default => 0

… 그리고 Rails API 읽기


답변

t.integer :retweets_count, :default => 0

… 작동합니다.

마이그레이션에 대한 Rails 가이드를 참조하세요.


답변

예, 마이그레이션 생성기 명령에서도 ‘default’를 사용하는 방법을 볼 수 없었지만 “rake db : migrate”를 적용하기 전에 생성 된 마이그레이션 파일을 수정하여 다음과 같이 새 문자열 열에 대한 기본값을 지정할 수있었습니다.

class AddColumnToWidgets < ActiveRecord::Migration
  def change
    add_column :widgets, :colour, :string, default: 'red'
  end
end

이것은 내 ‘위젯’모델에 ‘색상’이라는 새 열을 추가하고 새 위젯의 기본 ‘색상’을 ‘빨간색’으로 설정합니다.


답변

전체 테이블을 만들기 위해 마이그레이션 파일에서 t.boolean : active, : default => 1을 시도했습니다. db를 체크인했을 때 마이그레이션을 실행 한 후 null로 만들었습니다. 내가 기본값을 “1”로 말했지만. 그 후 약간 마이그레이션 파일을 이와 같이 변경 한 다음 테이블 마이그레이션 파일 만들기에서 기본값을 설정하는 데 도움이되었습니다.

t.boolean : active, : null => false, : default => 1. 나를 위해 일했습니다.

내 Rails 프레임 워크 버전은 4.0.0입니다.


답변

먼저 모델 기본 사항에 대한 마이그레이션을 생성 한 다음 change_column …

def change
    change_column :widgets, :colour, :string, default: 'red'
end


답변