rails g model Rating user_id:integer message:string value:integer
Làm thế nào tôi có thể loại bỏ hoàn toàn mô hình này? Cảm ơn
rails g model Rating user_id:integer message:string value:integer
Làm thế nào tôi có thể loại bỏ hoàn toàn mô hình này? Cảm ơn
Câu trả lời:
bundle exec rake db:rollback
rails destroy model <model_name>
Khi bạn tạo một mô hình, nó tạo ra một cơ sở dữ liệu di chuyển. Nếu bạn chạy 'hủy' trên mô hình đó, nó sẽ xóa tệp di chuyển, nhưng không xóa bảng cơ sở dữ liệu. Vì vậy, trước khi chạy
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
. Nó sẽ là một cơ sở dữ liệu trống mới.
Đối với những người hỏi trong tương lai: Nếu bạn không thể thả các bảng khỏi bảng điều khiển, hãy thử tạo một di chuyển thả các bảng cho bạn. Bạn nên tạo một di chuyển và sau đó trong các bảng ghi chú tệp bạn muốn loại bỏ như thế này:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
Để xóa di chuyển (nếu bạn đã di chuyển di chuyển)
rake db:migrate:down VERSION="20130417185845" #Your migration version
Để loại bỏ mô hình
rails d model name #name => Your model name
rails d model
là những gì tôi đang tìm kiếm để đảo ngược của tôi rails g model
.
Đây là cách triển khai khác nhau cho câu trả lời của Jenny Lang hoạt động cho Rails 5.
Đầu tiên tạo tệp di chuyển:
bundle exec be rails g migration DropEpisodes
Sau đó, điền vào tệp di chuyển như sau:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Chạy rails db:migrate
sẽ làm rơi bàn. Nếu bạn chạy rails db:rollback
, Rails sẽ đưa ra một ActiveRecord::IrreversibleMigration
lỗi.