RoR скаффолд добавить поле после скрипта / генерировать - PullRequest
2 голосов
/ 25 июля 2010

Я создал скаффолд и добавил тип: значение, но теперь мне нужно добавить еще один столбец field / db. Как мне добавить другой тип: значение, не разрушая и не перезапуская весь мой проект?

rake aborted!
Mysql::Error: You have an error in your SQL syntax; check the manual that corres
ponds to your MySQL server version for the right syntax to use near '(11), `titl
e` varchar(255) DEFAULT NULL, `artist_old` varchar(255) DEFAULT NULL,' at line 1
: CREATE TABLE `albums` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY(11
), `title` varchar(255) DEFAULT NULL, `artist_old` varchar(255) DEFAULT NULL, `r
elease_date` datetime DEFAULT NULL, `genre` varchar(255) DEFAULT NULL, `feature`
 int(11) DEFAULT NULL, `image_path` varchar(255) DEFAULT NULL, `created_at` date
time DEFAULT NULL, `updated_at` datetime DEFAULT NULL, `artist_id` int(11) DEFAU
LT NULL) ENGINE=InnoDB

Ответы [ 2 ]

5 голосов
/ 26 июля 2010

обычно, когда вы используете команду scaffold, она создает миграцию в вашей папке db/migrate/, содержащей все настройки базы данных для вашей модели, например:

class CreateComments < ActiveRecord::Migration
  def self.up
    create_table :comments do |t|
      t.text :body
    end
  end

  def self.down
    drop_table :comments
  end
end

Если вы не выполнили команду rake db:migrate после создания каркаса, вы можете просто отредактировать файл миграции в db/migrate/ и добавить поле, которое вы пропустили в начале. После того, как вы отредактировали файл, введите команду rake db:migrate, чтобы применить миграцию к вашей базе данных.

Если вы уже прошли через rake db:migrate после создания каркаса, вы можете создать новую миграцию с помощью script/generate migration AddSubjectColumnToComments, чтобы добавить еще одно поле в вашу таблицу. В моем примере выше я получу новую миграцию и введу следующий код:

class AddSubjectColumnToComments < ActiveRecord::Migration
  def self.up
    add_column :subject, :comments, :string
  end

  def self.down
    remove_column :subject, :comments
  end

Удачи в миграции!

1 голос
/ 25 июля 2010

Просто создайте миграцию и обновите ваши представления вручную.

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