Убрать внешний ключ со стола - Рубин на рельсах - PullRequest
0 голосов
/ 04 января 2019

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

В этой таблице у меня есть внешний ключ:

class CreatePriceWorkshops < ActiveRecord::Migration
  def change
    create_table :price_workshops do |t|
      t.float :price

      t.timestamps null: false
    end
  end
end

С помощью этой миграции я создаю внешний ключ:

class AddTypeMoneysToPriceWorkshops < ActiveRecord::Migration
  def change
    add_reference :price_workshops, :type_money, index: true, foreign_key: true
  end
end

С этим я пытаюсь удалить внешний ключ

class RemoveTypeMoneyFromPriceWorkshops < ActiveRecord::Migration
  def change
    remove_column :price_workshops, :type_money_id, :integer
  end
end

Ответы [ 2 ]

0 голосов
/ 04 января 2019
class RemoveTypeMoneyFromPriceWorkshops < ActiveRecord::Migration
  def change
    remove_reference(:price_workshops, :type_money, index: true, foreign_key: true)
  end
end

Из официальных документов, проверьте больше здесь

0 голосов
/ 04 января 2019

Вы пробовали remove_foreign_key вместо remove_column согласно официальному документу ?

class RemoveTypeMoneyFromPriceWorkshops < ActiveRecord::Migration
  def change
    remove_foreign_key :price_workshops, :type_money
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...