Modell.delete_all und machen die ids beginnen wieder bei 1?
Ich bin mit der Modell.delete_all in der Rails-Konsole, um eine Tabelle zu löschen, aber ich merkte, dass die id-Nummern nicht zurückgesetzt, fangen Sie direkt an, wo es aufgehört hat. Wie lösche ich eine Tabelle und stellen Sie die ids beginnen wieder bei 1?
Es ist eigentlich keine große Sache, ich bin nur neugierig und denke, es wäre sauberer so. Danke!
- ähnliche Frage mit Antwort hier: stackoverflow.com/questions/2097052/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meisten Datenbanken verfügen über ein Konzept für eine Sequenz, die automatisch erhöht, wie es verwendet wird. ActiveRecord nutzt die zugrunde liegende Datenbank-Sequenz zu erstellen Primärschlüssel. Dieser Edelstein (https://github.com/splendeo/activerecord-reset-pk-sequence) kann helfen, setzen Sie es für Sie je nach Ihrer Datenbank.
Fallen nur eine Tabelle (mit den callbacks) und die IDs beginnen bei 1, es gibt keine straight-forward Weg in Schienen es zu tun.
Können Sie tun
1)
Model.destroy_all
2)
ActiveRecord::Base.connection.execute("TRUNCATE table_name")
welche sich um alle, die Sie wollen, für eine einzelne Tabelle, wenn das, was Sie brauchen,
wenn Sie postgresql verwenden, können Sie diesen code ausführen, werden
ActiveRecord::Base.connection.reset_pk_sequence!(Model.table_name)
nachModel.destroy_all
Wenn Sie nur zum zurücksetzen der ids:
Die besten und einfache Weise :
Ps : vergessen Sie nicht die 's' nach dem table_name
Hängt es von der DB. In Ihrer app sollten Sie sich nicht darauf verlassen, dass die IDs mit 1 beginnen und gehen nacheinander, oder auch immer erhöhen für neue Rekorde.
Wenn Sie möchten, eine frische DB haben, können Sie immer tun
rake db:drop
, dannrake db:create
.one-liner
wieder im Geschäft