В моей базе данных разработки (sqlite3) есть таблица «накладные», заполненная небольшим количеством тестовых данных.
Я хотел добавить к нему столбец invoice_number и настроить миграцию следующим образом:
class AddInvoiceNumberColumnToInvoices < ActiveRecord::Migration
def self.up
add_column :invoices, :invoice_number, :integer
end
def self.down
remove_column :invoices, :invoice_number
end
end
Я пробежал rake db:migrate
, и он, казалось, мигрировал очень хорошо. Однако, когда я попытался получить доступ к этому столбцу через ActiveRecord, его там не было. Я решил отменить эту миграцию и повторить попытку (не уверен, что собираюсь попробовать, но думал, что начну с ее отмены) с rake db:migrate VERSION='whatever_the_migration_before_this_one_was_called'
. Это не удалось с сообщением об ошибке
== AddInvoiceNumberColumnToInvoices: reverting ===============================
-- remove_column(:invoices, :invoice_number)
rake aborted!
An error has occurred, this and all later migrations canceled:
altered_invoices.invoice_number may not be NULL
Я не могу найти документацию по этой ошибке. Кто-нибудь может объяснить, что я сделал неправильно, и, что более важно, как я могу это исправить?