: 이것은 여러 줄로 마이그레이션을 생성합니다레일 마이그레이션, 어떻게 배치 모드에서 테이블에 여러 열을 추가하는 난이 할 수있는 기존 테이블에 여러 열을 추가 할
rails g migration AddColumnsToUser col1:integer col2:integer .. etc.
을 :
def change
add_column :users, :col1, :integer
add_column :users, :col2, :integer
end
백엔드 DB에 여러
alter table
명령으로 변환됩니다
:
ALTER TABLE users ADD COLUMN col1 SMALLINT(6) NOT NULL;
ALTER TABLE users ADD COLUMN col2 SMALLINT(6) NOT NULL;
큰 테이블을 다루는 경우, 각 alter table
은 MySQL에서 더 적은 시간이 걸릴 것입니다. 왜냐하면 백엔드 엔진이 테이블의 복제본을 생성하고 값 비싼 프로세스를 많이 수행하기 때문입니다. 그리고이 모든 작업은 추가하려는 각 열에 대해 수행해야합니다.
그래서, 내 질문은, 내가 같이, 단 하나에 모든 add_column
문장이 너무 결과가 배치 모드에서 alter table
될 것입니다 집계 할 수있는 방법입니다 :
ALTER TABLE users
ADD COLUMN col1 SMALLINT(6) NOT NULL,
ADD COLUMN col2 SMALLINT(6) NOT NULL;
자세한 내용 : https://aaronlasseigne.com/2012/06/05/faster-activerecord-migrations-using-change-table-bulk/ – fguillen