Миграция не добавляет столбец в базу данных - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть две модели Artist и Painting.

Я добавил следующую миграцию и выполнил rake db:migrate

class AddArtistReferenceToPaintings < ActiveRecord::Migration
  self.up do 
    change_table :paintings do |t|
      t.references :artist
    end  
  end
end

Это ничего не меняет в базе данных.Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Кажется правильным.

Вы уже запустили эту миграцию и добавили эту последнюю? Если да, то создайте новую ИЛИ удалите версию из schema_migrations.

Путь: Чтобы добавить столбец внешнего ключа

change_table(:suppliers) do |t|
  t.references :company
end

Создает столбец company_id (целое число)

Чтобы добавить столбец полиморфного внешнего ключа

change_table(:suppliers) do |t|
  t.belongs_to :company, :polymorphic => true
end

Создает столбцы company_type (varchar) и company_id (integer).

Подробнее см. Ссылку .

1 голос
/ 03 апреля 2012

Попробуйте

t.belongs_to :artist

вместо

t.references :artist

Но ваш вариант также должен работать, если вы тестируете в консоли irb.Запустите «перезагрузить» для обновления.

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