Почему эта простая миграция Rails не обновляет мою базу данных? - PullRequest
2 голосов
/ 04 октября 2009

У меня очень простая миграция, которая добавляет один логический столбец:

class AddMuteToPreferences < ActiveRecord::Migration
  def self.up
    add_column :preferences, :mute_audio, :boolean, :default => false
  end

  def self.down
    remove_column :preferences, :mute_audio
  end
end

Я запускаю миграцию:

== 81 AddMuteToPreferences: migrating =========================================
-- add_column(:preferences, :mute_audio, :boolean, {:default=>false})
   -> 1.9043s
== 81 AddMuteToPreferences: migrated (1.9047s) ================================

Выглядит персиково, верно? Но по какой-то причине в моей таблице предпочтений все еще нет столбца mute_audio.

Я не могу понять это. Я выполнил add_column без проблем.

Кто-нибудь когда-либо видел такое поведение раньше?

1 Ответ

3 голосов
/ 04 октября 2009

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

Лучший способ отладки - войти в консольный режим rails:

script/console development

И создайте новый объект предпочтения и присвойте mute_audio значение:

>> p = Preference.new
(...)
>> p.mute_audio = true

После первой команды вы должны увидеть некоторые выходные данные, содержащие информацию о вновь созданном объекте. Вы должны увидеть, что он имеет mute_autio: false. Если установка атрибута mute_audio не выдает ошибку, это не проблема, и новый добавленный столбец есть.

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