레일즈 애플리케이션의 mySql 기반 루비에서 postgresql을 사용하여 마이 그 레이션해야했습니다. 지금까지 문제는 없지만 해결 방법을 모르겠습니다.postgresql 기존 값 생성
데이터 마이그레이션시 id가 함께 가져오고 postgresql에서 기존 ID에 문제가 발생했습니다. nextval에 대한 기준을 결정하는 데 사용되는 값이 어디에서 발생하는지 분명하지 않습니다. 비록 당신이 좋은 생각이라고 생각할지 모르지만, 칼럼에서 가장 높은 가치. 어쨌든 현재 id 값과 충돌하고 있습니다. 표준 RoR 마이그레이션에서 생성 된 ID 열은
not null default nextval('geopoints_id_seq'::regclass)
으로 정의됩니다. 기본으로 사용하는 값을 해킹 할 수있는 곳이 있습니까? 내가
'select max(id) from <table_name>'
를 사용할 수 있지만 그 의미가 자동 증가 컬럼의 아이디어를 만들 것으로 보인다 :이 문제는 지금 20 개 정도 모든 테이블에서 발생할 수 있습니다.
어떻게 처리하는 것이 가장 좋습니까?
와우, 감사합니다. 레일 환경에 있기 때문에 @hgimenez 솔루션에서 실행 해 보겠다.하지만 메시지를 postgres의 명령 줄을 통해 처리 할 수 있다고 가정합니다. 후속 조치 :이 방법을 시도 하겠지만 마이그레이션에 그러한 진술을 사용할 수 있습니까? –
확실히, ActiveRecord :: Base.connection.reset_pk_sequence ('table_name')로 마이그레이션 할 수 있습니다. 그러나 이것은 psql에서도 확실히 수행 할 수 있습니다. – hgmnz
awesomeness +1 점 – kikito