테이블 사용자를 만들 때 결과 테이블에는 정수로 정의 된 id라는 열이 있습니다. 다음과 같이 RAILS : DB MIGRATION : id 열을 auto_increment로 재설정
나는 그것이 BIGINT을 수정하는 서명을 시도 :change_column :users, :id, :integer, :limit => 8, :unsigned => true
BIGINT로 변경 없지만, 여전히 주요 지표로 확인되었다하지만 그것은 (더 이상 자동 증가 열였다 않았다
change_column :users, :id, :integer, :limit => 8, :unsigned => true, :null => false, :auto_increment => true
레일 마이그레이션 말했다 :
그때 일을했는데, 그것은 (레일 마이그레이션이 잘 실행한다는 얘기하더라도) 부호로 설정되지 않았습니다 잘 실행되었지만 아무 것도 변경되지 않았습니다.
내가 좋아하는 뭔가를 시도 할 수 :
change_column :users, :id, :primary_index
을하지만
나는 또한 MySQL의 코드로 문을 "실행"을 시도 할 수 시작된 곳은 바로 내 이름을 써 넣는 것,하지만 난 마이그레이션을 유지하려면 파일 "clean". 이 문제가있는 사람이 있습니까?
제쳐두고, 나는 또한 다른 컬럼에서 기본값을 NULL로 설정하려고 시도했다. 여기서 그것을 (그리고 Google) 연구했지만 성공하지 못했다.
편집 : 그것은 일반적인 마이그레이션을 통해 테이블 작성의 일부로 만든 후 열 "ID"를 편집 할 수있는 방법이없는 것처럼
것 같다. 이를 수행하는 유일한 방법은 MySQL 구문을 사용하여 "실행"문을 사용하는 것입니다.
기본 ID 필드 설정의 문제, 그것이 내가 2,147,483,647까지의 값으로 제한하고 있음을 의미하는 부호로 설정, 정수 값 점이다. 이것은 매우 큰 숫자처럼 보일지 모르지만 하루에 수천만 개의 레코드가있는 소셜 네트워크 데이터를 다루고 있습니다 (결국 보관되지만 ID 번호를 유지해야합니다). 그래서 서명하지 않은 bigint로 만들어야합니다. 18,446,744,073,709,551,615까지 제공합니다 (Twitter의 경우 트윗 ID를 bigint, unsigned로 제공). – EastsideDeveloper
기본적으로 기본값은 NULL이지만,이 경우에는 우연히 변경했으며, 기본값을 null로 되돌릴 수있는 방법이 있으면 열을 삭제하고 다시 만드는 것만 큼 궁금합니다. . 이미 시도했습니다 : 기본 => false,하지만 NULL이 아닌 0을 생성합니다. – EastsideDeveloper
기본 옵션에 대해 실수로 실수를 저 지르려고했습니다. 이제 해결되었습니다. 시도해 볼 수 있습니까? – Agis