Wdrażam aplikację rails do heroku, która wykorzystuje PostgreSQL jako back-end. Podczas mojej migracji bazy danych ustawiam pole ID dla rzeczy, które podobają się raporty itp., Na co najmniej 1000, większość klientów wydaje się nie lubić zaczynać od 1.Jak ustawić punkt początkowy dla kolumny klucza podstawowego (ID) w Postgresie poprzez migrację railsów
Zwykle używam mysql i po prostu dodaję sql specyficzne po moim stole kreacja:
def self.up
create_table :reports do |t|
t.references :something
...
end
execute("ALTER TABLE reports AUTO_INCREMENT = 1000;")
end
Czy ktoś wie jak mogę acheive taka sama dla PostgreSQL, idealnie chciałbym migrację do siebie zbudować stół tak, że nie jest DB specyficzny.
Myślę, że głupim sposobem osiągnięcia mojego celu byłoby utworzenie i usunięcie 999 rekordów w pętli, ouch.
Dzięki zarówno dla aktualizacji, ja po prostu przesunięte w dół zrzut db, wygląda to jedno: UTWÓRZ SEKWENCJĘ numer_artykułu ZDJĘCIE PRZEZ 1 BRAK MAXVALUE NO MINVALUE CACHE 1; – tsdbrown
Tak, możesz ustawić początek w czasie 'CREATE SEQUENCE', w takim przypadku po prostu dodaj" START 1000 "do instrukcji. Ale aby zmienić to później, potrzebujesz polecenia "ALTER", a nie "CREATE". –
Haha dziękuje, nie próbowałem używać polecenia CREATE, podświetlając tylko to, co "zostało" użyte do wygenerowania sekwencji, to jest SQL wygenerowany z pliku migracji. Użyłem ALTER i URUCHOMIĘĆ, jak wspomniałeś, a to zadziałało. Jeśli mam zamiar używać PostgreSQL w aplikacji opartej na produkcji, to na pewno ją przeczytam. – tsdbrown