Je souhaite supprimer une table de mon schéma. J'ai créé la base de données lorsque j'ai démarré le projet et je souhaite que la table soit supprimée. Quelle est la meilleure façon de procéder?
J'ai essayé Rails g migration drop table :installs
mais cela crée juste une migration vide?
Schéma:
create_table "installs", force: :cascade do |t|
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "installs", ["email"], name: "index_installs_on_email", unique: true
add_index "installs", ["reset_password_token"], name: "index_installs_on_reset_password_token", unique: true
Si vous créez une migration vide en exécutant:Rails g migration DropInstalls
ou:Rails generate migration DropInstalls
Vous pouvez ensuite l'ajouter à cette migration vide:
class DropInstalls < ActiveRecord::Migration
def change
drop_table :installs
end
end
Exécutez ensuite rake db:migrate
dans la ligne de commande qui devrait supprimer la table Installs
Je trouve qu'il est plus facile d'utiliser Rails Console pour résoudre ce problème. Supposons que vous souhaitiez supprimer un tableau de "commentaires" d'une application de blog. Vous pouvez le faire en effectuant les tâches suivantes à partir de la ligne de commande (par exemple, Terminal).
La première étape:
$ Rails console
Deuxième étape:
$ ActiveRecord::Migration.drop_table(:comments)
Troisième étape:
$ rake db:migrate
Allez vérifier votre schema.rb
pour voir que la table a été supprimée.