Musiałem migrować z ruby mySql opartej na aplikacji railsowej do używania postgresql. Żadnych problemów, ale jak dotąd, i nie wiem, jak to rozwiązać.Następujące generowanie wartości postgresql
Migracja danych przyniosła id wraz z nim, a postgresql ma teraz problemy z istniejącymi identyfikatorami: nie jest dla mnie jasne, skąd otrzymuje wartość, którą wykorzystuje do określenia podstawy dla nextval: to na pewno nie jest najwyższa wartość w kolumnie, chociaż możesz pomyśleć, że byłby to dobry pomysł. W każdym razie teraz koliduje z istniejącymi wartościami id. kolumna id, stworzony ze standardowego migracji RoR jest zdefiniowany jako
not null default nextval('geopoints_id_seq'::regclass)
Czy jest jakieś miejsce, że wartość wykorzystuje jako bazę można hacked? Ten problem może pojawić się w każdym z 20 lub tabelach: Mogłem użyć
'select max(id) from <table_name>'
ale wydaje się, aby ideę kolumny autoIncrement bezcelowe.
W jaki sposób najlepiej sobie z tym radzić?
Wow, dzięki za szybką i przydatnych odpowiedzi wszystkich. Zajmę się uruchomieniem rozwiązania @hgimenez, ponieważ jestem w środowisku Rails, ale domyślam się, że mogę to zrobić za pomocą linii poleceń w postgresie. W następstwie: Mam zamiar spróbować, ale czy mogę umieścić takie oświadczenie w migracji –
Zdecydowanie, możesz mieć migrację, która idzie: ActiveRecord :: Base.connection.reset_pk_sequence! ('Table_name'), ale można to oczywiście zrobić również z psql. – hgmnz
+1 punkt za awesomenessa – kikito