웹 응용 프로그램의 테이블에는 "GUID"ID가 ID 필드에 있습니다. DB를 만드는 데 사용 된 실제 SQL 코드를 조사하여 ID가 실제로 기본 키로 지연되지 않는 것을 확인했습니다. 고유성이 적용되지 않고 색인이 작성되지 않습니다.RoR 스키마에 기본 키 제약 조건 추가
이렇게하면 좋지 않을 수 있습니다. 우리의 목표는 여기에
이 개발에create_table "projects", :id => false, :force => true do |t|
t.string "id"
t.string "name"
t.string "objective"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "client_account_id"
t.string "default_project_name"
t.boolean "quota_exceeded", :default => false, :null => false
end
, 우리는 sqlite3를 데이터베이스를 사용하는 생산에, 우리가 의존하는 동안 우리의 schema.rb의 샘플입니다 "기본 키"우리의 ID 필드를 설정하는 것입니다 MySQL에.
기존 SQLite3 DB에 이러한 제약 조건을 추가 할 수 없다는 것을 알고 있지만 필요하다면 삭제하고 다시 만들 준비가되었습니다. 가능하면 MySQL DB를 삭제하는 것을 피하고 싶지만 실제로 필요한 경우 백업하고 새 스키마에 데이터를 삽입 할 수 있습니다.
최선의 방법은 무엇입니까? (레일 V3.2.6)
이 방법이 실제 복합 키에 유용 할 수 있음을 이해합니다. 그러나 제 상황에서는 어떻게 사용합니까? : validate_uniqueness_of : id? 가능하면 모델 수준이 아닌 DB 수준에서 고유성을 적용하고 싶습니다. – almathie