받아 들여진 대답은 훌륭하지만, 저와 같은 비전문가를 위해 원래 포스터 질문 파트 2를 더 잘 다룰 수있는 대답을 여기에 추가하고 싶었습니다.
- 해당 열의 유형을 대체하기 위해 마이그레이션을 생성하는 방법
스캐 폴드 마이그레이션 생성
콘솔에 입력하여 변경 사항을 보관할 마이그레이션을 생성 할 수 있습니다 ( table
테이블 이름과 column
열 이름을 바꾸면됩니다 ).
rails generate migration change_table_column
그러면 Rails 애플리케이션 / db / migrate / 폴더 내에 스켈레톤 마이그레이션이 생성됩니다. 이 마이그레이션은 마이그레이션 코드의 자리 표시 자입니다.
예를 들어 나는에서 열 유형을 변경하는 마이그레이션을 만들려 string
에 text
테이블라고 TodoItems에서 :
class ChangeTodoItemsDescription < ActiveRecord::Migration
def change
# enter code here
change_column :todo_items, :description, :text
end
end
마이그레이션 실행
열을 변경하는 코드를 입력했으면 다음을 실행하십시오.
rake db:migrate
마이그레이션을 적용하려면. 오류가있는 경우 언제든지 다음을 사용하여 변경 사항을 되돌릴 수 있습니다.
rake db:rollack
위아래 방법
새로운 방법 대신 허용되는 답변 참조 Up
및 방법. Rails 3.2 이전 스타일의 Up 및 Down 방법은 새로운 Change 방법에 비해 몇 가지 장점을 제공했습니다. '위아래'피하십시오 . Rails 4 가 출시 된 이후 로이 오류를 피하는 데 사용할 수 있습니다 .Down
Change
ActiveRecord::IrreversibleMigration exception
reversible
class ChangeProductsPrice < ActiveRecord::Migration
def change
reversible do |dir|
change_table :products do |t|
dir.up { t.change :price, :string }
dir.down { t.change :price, :integer }
end
end
end
end
레일스 즐기기 :)