2014-01-08 4 views
0

Так что я создал новую таблицу на schema.rb здесь является новая строка кода я поставил:Рубиновые Rails Rake дб мигрировать не работает или файл схемы не обновляя

create_table "book", :force => true do |t| 
    t.integer "user_id" 
    t.string "title" 
    t.integer "count" 
    end 

, но после того, когда я запускаю грабли БД: migrate command schema.rb превращается в старый файл, когда я его открываю, мой новый код create_table просто ушел из каких-либо идей? im новый для рубиновых рельсов Спасибо!

я попытался это тоже:

rake db:drop:all 
rake db:create:all 
rake db:migrate 

, но до сих пор schema.rb файл не обновляется в один новый.

ответ

1

Этот файл schema.rb создан, и любые изменения, внесенные вами в него, исчезнут при следующем его создании. Обычный способ изменения базы данных в Rails - migrations.

0

Не редактируйте свой schema.rb напрямую. schema.rb автогенерируется из текущего состояния базы данных.

Для этого вам необходимо создать файл миграции.

Читать Active Record Migrations.

0

Вам необходимо использовать миграцию, а не напрямую изменять схему. Вы НИКОГДА не должны изменять файл schema.rb напрямую, так как при следующем переходе он будет перезаписан. Rails генерирует файл схемы. Попробуйте следующее в терминале:

rails generate model Book user_id:integer title:text count:integer 

, а затем запустить:

rake db:migrate 

Это должно исправить ваши проблемы. Теперь вы разрешаете рельсам создавать модель для вас (это создает миграцию для создания новой модели), а затем ее миграция меняет таблицы базы данных. Посмотрите на свои schema.rb файл послесловия, и он должен выглядеть правильно.

Для получения дополнительной информации о генераторах моделей, посмотрите here.

Смежные вопросы