2012-03-27 6 views
2

Ich versuche, eine Tabelle in Schienen zu erstellen .. Ich muss in der Lage sein, die IDs zu Daten, die kommen, weil ich drei (oder mehr) habe Quellen, und ihre IDs müssen übereinstimmen. manuell die die ID, basierend auf Daten, die ich in bekommen.Wie vermeide ich die implizite Sequenz auf dem ID-Feld während der Schienen Migration


Ich gründe Wenn ich die Tabelle mit einer Migration zu erstellen, bekomme ich die Meldung „implizite Folge schaffen“ Ich will das nicht auf passieren ... Wie vermeide ich es?

Ich weiß, warum es immer da ist .. aber manchmal brauchen wir Anpassung nein? :)

+0

Bitte lesen Sie diese [link] (http://stackoverflow.com/questions/5296290/notices-for-sequence-after-running-migration-in-rails-on-postgresql-application) –

Antwort

3

ActiveRecord machen die: primary_key Spalte auto_increment standardmäßig. Vielleicht müssen Sie den Primärschlüssel selbst erstellen, wenn Sie nicht möchten, dass er automatisch_increment wird.

create_table :table_name, :id => false do |t| 
    t.integer :id 
    t.timestamps 
end 
ActiveRecord::Base.connection.execute("ALTER TABLE table_name ADD PRIMARY KEY (id)") 
+0

total fantastisch. Danke. – baash05