rails g model Rating user_id:integer message:string value:integer
Bagaimana cara menghapus model ini sepenuhnya? Terima kasih
rails g model Rating user_id:integer message:string value:integer
Bagaimana cara menghapus model ini sepenuhnya? Terima kasih
Jawaban:
bundle exec rake db:rollback
rails destroy model <model_name>
Saat Anda membuat model, itu membuat migrasi database. Jika Anda menjalankan 'hancurkan' pada model itu, itu akan menghapus file migrasi, tetapi tidak tabel database. Jadi sebelum lari
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
. Ini akan menjadi database kosong baru.
Untuk penanya selanjutnya: Jika Anda tidak dapat melepaskan tabel dari konsol, cobalah untuk membuat migrasi yang melepaskan tabel untuk Anda. Anda harus membuat migrasi dan kemudian di tabel catatan file yang ingin Anda jatuhkan seperti ini:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
Untuk menghapus migrasi (jika Anda sudah memigrasi migrasi)
rake db:migrate:down VERSION="20130417185845" #Your migration version
Untuk menghapus Model
rails d model name #name => Your model name
rails d model
adalah apa yang saya cari untuk membalikkan saya rails g model
.
Berikut adalah implementasi berbeda dari jawaban Jenny Lang yang berfungsi untuk Rails 5.
Pertama buat file migrasi:
bundle exec be rails g migration DropEpisodes
Kemudian isi file migrasi sebagai berikut:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Berlari rails db:migrate
akan menjatuhkan meja. Jika Anda lari rails db:rollback
, Rails akan membuat ActiveRecord::IrreversibleMigration
kesalahan.