Wie lösche ich alle Datensätze in einer meiner Datenbanktabellen in einer Ruby on Rails-App?
ruby-on-rails
ruby
database
ruby-on-rails-3
Justin Meltzer
quelle
quelle
ActiveRecord
Modelle sind. Die Frage fragt nach dem Löschen eines Datensatzes aus einer 'Tabelle' und ich zeige nur oder die Annahme, die in der Antwort enthalten ist.Über SQL löschen
Item.delete_all # accepts optional conditions
Löschen durch Aufrufen der Zerstörungsmethode jedes Modells (teuer, stellt jedoch sicher, dass Rückrufe aufgerufen werden)
Item.destroy_all # accepts optional conditions
Alles hier
quelle
Wenn Sie die Datenbank vollständig leeren und nicht nur ein oder mehrere daran angehängte Modelle löschen möchten, haben Sie folgende Möglichkeiten:
Sie können dies auch in der Testdatenbank tun
quelle
Wenn Sie damit meinen, jede Instanz aller Modelle zu löschen, würde ich verwenden
quelle
select
Sie immer dann, wenn Sie einen if-Ausdruck innerhalb eines Blocks verwenden müssen. Auf diese Weise müssen Sie die kompakte Methode nicht verketten, um keine Elemente zu entfernen.quelle
Wenn Ihr Modell BlogPost heißt, wäre es:
quelle
MOPED: 127.0.0.1:27017 QUERY database=a_database collection=nothings selector={} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.3378ms)
Neuere Antwort für den Fall, dass Sie alle Einträge in jeder Tabelle löschen möchten:
Weitere Informationen dazu
eager_load
hier .Nach dem Aufruf können wir auf alle Nachkommen von zugreifen
ActiveRecord::Base
und eindelete_all
auf alle Modelle anwenden .Beachten Sie, dass wir sicherstellen, dass die SchemaMigration-Tabelle nicht gelöscht wird.
quelle