rails g model Rating user_id:integer message:string value:integer
Wie kann ich dieses Modell vollständig entfernen? Vielen Dank
rails g model Rating user_id:integer message:string value:integer
Wie kann ich dieses Modell vollständig entfernen? Vielen Dank
Antworten:
bundle exec rake db:rollback
rails destroy model <model_name>
Wenn Sie ein Modell generieren, wird eine Datenbankmigration erstellt. Wenn Sie auf diesem Modell 'destroy' ausführen, wird die Migrationsdatei gelöscht, nicht jedoch die Datenbanktabelle. Also vor dem Laufen
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
. Es wird eine neue leere Datenbank sein.
Für zukünftige Fragesteller: Wenn Sie die Tabellen nicht von der Konsole löschen können, versuchen Sie, eine Migration zu erstellen, die die Tabellen für Sie löscht. Sie sollten eine Migration erstellen und dann in den gewünschten Dateinotizentabellen wie folgt löschen:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
So entfernen Sie die Migration (wenn Sie die Migration bereits migriert haben)
rake db:migrate:down VERSION="20130417185845" #Your migration version
Modell entfernen
rails d model name #name => Your model name
rails d model
ist das, wonach ich suche, um meine umzukehren rails g model
.
Hier ist eine andere Implementierung von Jenny Langs Antwort, die für Rails 5 funktioniert.
Erstellen Sie zuerst die Migrationsdatei:
bundle exec be rails g migration DropEpisodes
Füllen Sie dann die Migrationsdatei wie folgt aus:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Beim Laufen rails db:migrate
wird die Tabelle gelöscht. Wenn Sie ausführen rails db:rollback
, gibt Rails einen ActiveRecord::IrreversibleMigration
Fehler aus.