Wie kann ich den Startpunkt für die Primärschlüsselspalte (ID) in Postgres über eine Schienenmigration festlegen?

8

Ich stelle eine Rails-App auf Heroku bereit, die PostgreSQL als Back-End verwendet. In meiner Datenbankmigration setze ich normalerweise das ID-Feld für Dinge wie Berichte usw. auf mindestens 1000, die meisten Clients scheinen nicht gerne bei 1 zu starten.

Normalerweise benutze ich mysql und ich füge nach der Erstellung meiner Tabelle einfach eine sql specific hinzu:

%Vor%

Weiß jemand, wie ich das gleiche für PostgreSQL erreichen kann, idealerweise möchte ich die Migration, um die Tabelle selbst zu erstellen, so dass das nicht DB-spezifisch ist.

Ich denke, eine alberne Art, mein Ziel zu erreichen, wäre das Erstellen und Löschen von 999 Datensätzen in einer Schleife, aua.

    
tsdbrown 15.09.2009, 13:21
quelle

2 Antworten

15

Haben Sie keine Ahnung von Rubinen und Eisenbahnen, aber die Frage, über die Sie sprechen, ist

%Vor%

Sie müssen Ihre Tabelle nach dem Sequenznamen und der PostgreSQL-Dokumentation für die allgemeine Ausbildung in dieser Angelegenheit suchen; -)

    
Michael Krelin - hacker 15.09.2009, 13:28
quelle
8

In Postgres, wie in vielen anderen Datenbanken, wird die automatische Inkrementierung über Sequenzen ausgeführt. Für jede Serien- und dergleichen Felder werden Sequenzen automatisch von Postres für Sie erstellt und etwa wie TABLENAME _ COLUMNNAME _ seq.

benannt

Sie müssen also einfach die entsprechende Sequenz wie folgt ändern:

%Vor%     
Maxim Sloyko 15.09.2009 13:29
quelle