[RUBY-ON-RAILS] 마이그레이션을 통해 열에 기본값 추가
RUBY-ON-RAILS마이그레이션을 통해 열에 기본값 추가
어떻게이 이미 마이그레이션을 통해 존재하는 컬럼에 디폴트 값을 추가하는 방법은 무엇입니까?
열이 이미 있지만 않습니다이 경우에는 존재하지 않는 경우 당신이 그것을 수행하는 방법을 보여줍니다 찾을 수있는 모든 문서.
해결법
-
==============================
1.여기 당신이 그것을 할 방법입니다 :
여기 당신이 그것을 할 방법입니다 :
change_column :users, :admin, :boolean, :default => false
그러나 일부 데이터베이스는 PostgreSQL을 같은, 그래서 당신이 너무 마이그레이션에 manaully 필드를 업데이트 할 수 있도록, 이전에 생성 된 행에 대한 필드를 업데이트하지 않습니다.
-
==============================
2.
change_column_default :employees, :foreign, false
-
==============================
3.레일 4+를 사용 change_column_default의 경우
레일 4+를 사용 change_column_default의 경우
def change change_column_default :table, :column, value end
-
==============================
4.당신이 되돌릴 수 있습니다 마이그레이션을 작성해야 데프 변경 수단을 사용. 그리고 change_column은 되돌릴 수 없습니다. 당신은 올라갈 수 있지만 change_column는 되돌릴 수 있기 때문에 당신은 아래로 갈 수 없다.
당신이 되돌릴 수 있습니다 마이그레이션을 작성해야 데프 변경 수단을 사용. 그리고 change_column은 되돌릴 수 없습니다. 당신은 올라갈 수 있지만 change_column는 되돌릴 수 있기 때문에 당신은 아래로 갈 수 없다.
그것은 몇 여분의 라인을있을 수 있지만 대신, 당신은 데프 위 데프 아래로 사용해야합니다
당신이없는 기본 값을 가진 열이 그렇다면, 당신은 기본 값을 추가하기 위해이 작업을 수행해야합니다.
def up change_column :users, :admin, :boolean, default: false end def down change_column :users, :admin, :boolean, default: nil end
또는 기존 C 럼의 디폴트 값을 변경하려는 경우.
def up change_column :users, :admin, :boolean, default: false end def down change_column :users, :admin, :boolean, default: true end
-
==============================
5.레일 (4)와 같이 기본 값으로 테이블에 열을 추가하기 위해 마이그레이션을 생성 할 수 없습니다, 다음 단계는 기본 값 true 또는 false로 기존 테이블에 새 열을 추가 할 수 있습니다.
레일 (4)와 같이 기본 값으로 테이블에 열을 추가하기 위해 마이그레이션을 생성 할 수 없습니다, 다음 단계는 기본 값 true 또는 false로 기존 테이블에 새 열을 추가 할 수 있습니다.
명령 줄에서 마이그레이션을 실행 1.하면 새 열을 추가합니다
$ rails generate migration add_columnname_to_tablename columnname:boolean
위의 명령은 테이블에 새 열을 추가합니다.
2. 만든 새 마이그레이션 파일을 편집하여 TRUE / FALSE로 새 열 값입니다.
class AddColumnnameToTablename < ActiveRecord::Migration def change add_column :table_name, :column_name, :boolean, default: false end end
$ rake db:migrate
-
==============================
6.실행 :
실행 :
rails generate migration add_column_to_table column:boolean
그것은이 마이그레이션을 생성합니다 :
class AddColumnToTable < ActiveRecord::Migration def change add_column :table, :column, :boolean end end
기본 => 1 : 추가 기본 값을 설정
운영:
-
==============================
7.이것은 당신이 무엇을 할 수 있습니다 :
이것은 당신이 무엇을 할 수 있습니다 :
class Profile < ActiveRecord::Base before_save :set_default_val def set_default_val self.send_updates = 'val' unless self.send_updates end end
from https://stackoverflow.com/questions/7098602/add-a-default-value-to-a-column-through-a-migration by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] Heroku가 / 유증 - 링크에 호스트를 누락! 제공 사항 : 호스트 매개 변수 또는 설정 default_url_options [: 호스트] (0) | 2020.02.13 |
---|---|
[RUBY-ON-RAILS] 어떤 일은 3 session_store 도메인 레일 : 모든 정말로? (0) | 2020.02.13 |
[RUBY-ON-RAILS] 루비에 밑줄 경우에 카멜 케이스로 변환 (0) | 2020.02.13 |
[RUBY-ON-RAILS] 유증 사용자를위한 모델 프로필? (0) | 2020.02.13 |
[RUBY-ON-RAILS] 레일에서 페이지 뷰에 대한 간단한 횟수 카운터 (0) | 2020.02.12 |