원래 PostgreSQL을 사용하여 레일 5 애플리케이션을 개발했습니다. 호스팅과 관련된 몇 가지 문제로 인해 모든 개발 작업을 마친 후 MariaDB로 변경해야했습니다.레일 5 마이그레이션 데이터 형식 문제
장바구니에서 관리자에 대한 참조를 추가하는 업데이트를 적용하려고합니다. 내가
rake db:migrate
나는이 오류가 실행할 때
class AddAdminRefToCart < ActiveRecord::Migration[5.1]
def change
add_reference :carts, :admin, foreign_key: true
end
end
: 여기 내 마이그레이션입니다
== 20171129152942 AddAdminRefToCart: migrating ================================
-- add_reference(:carts, :admin, {:foreign_key=>true})
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Column `admin_id` on table `carts` has a type of `bigint(20)`.
This does not match column `id` on `admins`, which has type `int(11)`.
To resolve this issue, change the type of the `admin_id` column on `carts` to be :integer. (For example `t.integer admin_id`).
오류는 의미가 있지만 문제를 해결하는 적절한 방법이 확실하지 오전 . 누군가 내 마이그레이션을 어떻게 작성해야하는지에 대한 지침을 제공 할 수 있습니까? 미리 감사드립니다!
레일스에 문제가 있습니까? 관계에서 add_reference를 사용하지 않기 때문에 레일 기능이 작동하지 않을 것으로 예상됩니까? –
전혀 아닙니다. 'add_reference'는'add_column'과 선택적으로'add_index'와'add_foreign_key'를위한 문법적 설탕입니다. – jeffdill2