== AddAncestryToMessages: migrating ==========================================
-- add_column(:messages, :ancestry, :string)
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: no such table: messages: ALTER TABLE "messages" ADD "ancestry" varchar(255)
поэтому в моем приложении есть сообщения, которые вы можете публиковать (вроде как твиттер) и Im, добавляя ответы, и я использую драгоценный камень предка, чтобы сделать это.Почему я продолжаю получать эту ошибку, когда пытаюсь запустить rake db: migrate?
мой код в моем schema.rb
файл (я думаю, что это файл использует для создания таблиц каждый раз, когда вы запускаете грабли БД:.! Мигрировать, но я мог бы быть неправильно (Это может быть проблемой)
create_table "messages", :force => true do |t|
t.string "content"
t.integer "user_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "ancestry"
end
add_index "messages", ["user_id", "created_at", "ancestry"], :name => "index_messages_on_user_id_and_created_at_and_ancestry"
Хмм, что не работает для меня. Я достал «родословную» t.string и «родословную» из метода add_index, тем самым вернув ее в исходное состояние. затем я запустил rails g migration CreateMessages и создал для меня файл rb. Затем я скопировал и вставил весь мой код выше. Это все правильно? – BigBoy1337
Подождите минуту. * Изменение его обратно в исходное состояние * - что вы имели в виду? У вас уже есть таблица и просто хотите добавить к ней индекс? Если вам нужно добавить индекс в таблицу, то ваш метод 'up' /' change' должен содержать ТОЛЬКО 'add_index ....'. Также, если у вас есть метод 'up', тогда заполните' down' методом 'remove_index,: name =>" ... "'. – jdoe
@ пользователь1123905, почти правильный. В новом файле rb вы должны вызвать add_column и add_index, поскольку, как заметил jdoe, у вас уже есть таблица. –