web-dev-qa-db-ja.com

スキーマからテーブルを削除-Rails

スキーマ内のテーブルを削除したい。プロジェクトを最初に開始したときにデータベースを作成し、テーブルを削除したい。これを行う最善の方法は何ですか?

私は試した Rails g migration drop table :installsしかし、それは単に空の移行を作成しますか?

スキーマ:

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
13
Bitwise

次を実行して空の移行を作成する場合:
Rails g migration DropInstalls
または:
Rails generate migration DropInstalls

次に、これを空の移行に追加できます。

class DropInstalls < ActiveRecord::Migration
  def change
    drop_table :installs
  end
end

次に、インストールテーブルを削除するコマンドラインでrake db:migrateを実行します

40
Luka Kerr

この問題を解決するのにRailsコンソールを使用するのが最も簡単だと思います。ブログアプリケーションから「コメント」テーブルを削除するとします。これを行うには、コマンドライン(たとえば、ターミナル)から次のタスクを実行します。

第一歩:

$ Rails console 

ステップ2:

$ ActiveRecord::Migration.drop_table(:comments)

ステップ3:

$ rake db:migrate

schema.rbテーブルが削除されたことを確認します。

6
WesleyAC