rails g model Rating user_id:integer message:string value:integer
Bu modeli nasıl tamamen kaldırabilirim? Teşekkürler
rails g model Rating user_id:integer message:string value:integer
Bu modeli nasıl tamamen kaldırabilirim? Teşekkürler
Yanıtlar:
bundle exec rake db:rollback
rails destroy model <model_name>
Bir model oluşturduğunuzda, bir veritabanı geçişi oluşturur. Bu model üzerinde 'yok et' komutunu çalıştırırsanız, geçiş dosyası silinir, ancak veritabanı tablosu silinmez. Yani koşmadan önce
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
. Yeni, boş bir veritabanı olacak.
Gelecekteki soru soranlar için: Tabloları konsoldan bırakamazsanız, tabloları sizin için bırakan bir geçiş oluşturmaya çalışın. Bir geçiş oluşturmalı ve ardından dosya notu tablolarında şu şekilde bırakılmasını sağlamalısınız:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
Taşımayı kaldırmak için (taşımayı zaten geçirdiyseniz)
rake db:migrate:down VERSION="20130417185845" #Your migration version
Modeli kaldırmak için
rails d model name #name => Your model name
rails d model
benim aradığım şey rails g model
.
İşte Jenny Lang'ın Rails 5 için çalışan cevabının farklı bir uygulaması.
Önce taşıma dosyasını oluşturun:
bundle exec be rails g migration DropEpisodes
Ardından, taşıma dosyasını aşağıdaki gibi doldurun:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Koşmak rails db:migrate
masayı düşürür. Çalıştırırsanız rails db:rollback
, Rails bir ActiveRecord::IrreversibleMigration
hata atar .