rails: rake db:create не создает новую таблицу

Я работаю над существующим проектом rails, где мне нужно добавить новую вкладку. Что ж, я написал все соответствующие модели, представления и контроллеры, а затем изменил файл schema.rb, чтобы создать новую таблицу.

 create_table "ryan_indices", :force => true do |t|
    t.string   "name"
  end



create_table "benchmark_indices", :force => true do |t|
        t.string   "name"
      end

Это мой частичный файл schema.rb. Первый стол был там раньше. Я просто пытаюсь добавить аналогичную новую таблицу, для которой я создал модель, представление и контроллер, а также добавил эти операторы create_table в файл schema.rb. Но когда я запускаю rake db:migrate, он не создает новую таблицу. И schema.rb file goes back to previous state я имею в виду, что мои изменения исчезают после того, как я запускаю команду rake db:migrate, и она ничего не показывает на экране командной строки.

Я не знаю, чего мне не хватает. Кто-нибудь может помочь?


person K M Rakibul Islam    schedule 08.01.2013    source источник


Ответы (1)


Редактирование schema.rb считается плохой практикой:

... не предназначены для редактирования, они просто представляют текущее состояние базы данных.

Для создания новой модели (и, следовательно, новой таблицы БД) вызовите генератор моделей рельсов.

rails generate model Product name:string 

Или: чтобы создать новые поля для существующей модели, создайте миграцию.. .

rails generate migration AddNameToProducts

... отредактируйте его, а затем запустите с помощью "rake db:migrate"

Эти задачи очень хорошо описаны на официальном сайте RailsGuides > Migrations.

person ulf_t    schedule 08.01.2013