Действительно ли нам нужно отбрасывать внешние ключи перед тем, как отбрасывать таблицы? - PullRequest
0 голосов
/ 26 апреля 2011

Миграция

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

Нужно ли нам удалять внешние ключи перед удалением таблиц?Могу ли я удалить таблицы напрямую без удаления внешних ключей?

Ответы [ 3 ]

1 голос
/ 26 апреля 2011
0 голосов
/ 26 апреля 2011

Это зависимость.Во-первых, вы должны удалить независимые таблицы, даже если они содержат внешние ключи.

0 голосов
/ 26 апреля 2011

Да, это хорошая практика для написания миграции.Существует несколько баз данных, которые не позволяют удалить таблицу, если для нее определен какой-либо внешний ключ.

и поскольку рельсы дают вам возможность работать с различными базами данных, в идеале рекомендуется рассмотреть такие передовые практики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...