#mysql #ruby-on-rails #ruby
#mysql #ruby-on-rails #ruby
Вопрос:
Миграция
def self.up
create_table :test_drafts do |t|
t.string :title, :limit => 255, :null => false
t.text :description
t.integer :user_id, :null => false
t.integer :test_id, :null => false
t.timestamps
end
add_foreign_key(:test_drafts,:user_id,:users,:cascade)
add_foreign_key(:test_drafts,:test_id,:tests,:cascade)
end
def self.down
drop_foreign_key(:test_drafts,:user_id)
drop_foreign_key(:test_drafts,:test_id)
drop_table(:test_drafts)
end
Нам действительно нужно удалять внешние ключи перед удалением таблиц?
Могу ли я удалять таблицы напрямую, не удаляя внешние ключи?
Ответ №1:
Ответ №2:
Да, это хорошая практика для написания миграции. Есть несколько баз данных, которые не позволяют удалять таблицу, если в ней определен какой-либо внешний ключ.
и поскольку rails дает вам возможность работать с различными базами данных, в идеале рекомендуется рассмотреть такие лучшие практики.
Ответ №3:
Это зависимость. Во-первых, вы должны удалить независимые таблицы, даже если они содержат внешние ключи.