Генератор миграции Rails не генерирует столбцы - PullRequest
3 голосов
/ 18 ноября 2009

Низкий сон, так что, возможно, что-то упущено, но ...

Основываясь на различных чтениях документов, я думал, что это создаст миграцию с включенными объявлениями таблиц и столбцов ...

$ script/generate migration Question ordinal_label:string question_text:string

Однако, результат ...

class Question < ActiveRecord::Migration
  def self.up
  end

  def self.down
  end
end

Почему нет таблицы или столбцов?

Ответы [ 3 ]

5 голосов
/ 18 ноября 2009

Команда script/generate migration не создает столбцы в новых таблицах.

Только если вы хотите добавить, например, столбец к существующей таблице, вы можете передать новый столбец в качестве аргумента:

script/generate migration add_text_to_question question_text:string

Для того, чего вы пытаетесь достичь, вам нужно создать новую модель:

script/generate model Question ordinal_label:string question_text:string

Это создаст миграцию, подобную следующей:

class CreateQuestions < ActiveRecord::Migration
    def self.up
      create_table :questions do |t|
        t.string  :ordinal_label
        t.string  :question_text
        t.timestamps
      end
    end

    def self.down
      drop_table :questions
    end
  end
3 голосов
/ 18 ноября 2009

Это должно быть

$ script/generate model Question ordinal_label:string question_text:string

Вы также получите модель, юнит-тест и, конечно, прибор. script/generate с migrate добавит столбец к существующей таблице, но не к новой.

$ script/generate migration add_question_text_to_question question_text:string
0 голосов
/ 18 ноября 2009

Вам нужен глагол, если вы изменяете модель.

script/generate migration AddLabelToQuestion label:string

или для создания новой модели вы используете свое утверждение выше, но заменяете модель миграцией.

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