id ostatniego node - gdzie siedzi?
Walka z drupalem, odcinek kolejny. W skrócie – jadę na dwa drupale – w jednym już rośnie treść, z dodatkowych modułów – mapy xml pod google.
Drugi bawię się z obrazkami itd – czyli teoretycznie powinien być mniej stabilny.
I stał się cud – drupal w tym pierwszym przypadku zgubił nr ostatniego node – przy dodawaniu nowej treści numeruje o 1 – co oczywiście wyrzuca błąd sql – duplicate entry for.. – wiadomo.
Szybko sprawdziłem, czy nie wyparował atrybut auto_increment w odpowiednich tabelach – nie wyparował.
Oczywiście można sobie poklikać te n razy i "dojechać" do dobrego id node. No ale co będzie, jak się powtórzy i będzie tego kilka tysięcy?:)
"wyzerowało się" id dla node i dla menu. Cud normalnie.
Miał ktoś podobny przypadek?
Oglądałem sobie strukturę bazy – nic się nie rozsypało – tzn tak mi się wydaje, bo guru od sql nie jestem.
Na drupal.org podobny problem pojawiał się wielokrotnie – tylko przeważnie występował przy przenosinach bazy – kiedy zapominano o wartości auto increment.
Pytanie na bonusie – gdzie siedzi cała konfiguracja serwisu? bo rozumiem, że w bazie, a nie w plikach – jest któraś tabela do tego? Czy może poszczególne moduły same przetrzymują sobie info.
sequences
Wszystkie tego typu wartości są przechowywane w tabeli sequences. Najmniejsze wolne ID segmentu (nie ostatnie ID) to, o ile mnie pamięć nie myli, node_nid.
Miałem podobny problem przy przenosinach tabel z jednej bazy do drugiej. Zamiast prefiksów postanowiłem wykorzystać osobne bazy i nie wiedziałem, że rzędy we współdzielonych tabelach są nazywane zgodnie z prefiksem/bazą (w związku z czym stare były już nieaktualne, a nowe zaczęło sobie liczyć od 0).
dokładnie - sequences
Dzięki – o to chodziło – już teraz wiem, czemu się wysypało. Treść już jakaś była, a ja dopiero potem dodałem sobie w tabelach prefix – i rzeczywiście indeksy wierszy w tabeli sequences odpowiadają nazwom tableli. Teraz są trochę podublowane.
Tak więc podpowiedź dla drupalowców: prefix tabeli ustalmy na początku, jeżeli chcemy uniknąć kłopotów :)