У меня есть таблица, определенная следующим образом:
def self.up
create_table "equipes", :primary_key => "equipe_id", :force => true do |t|
t.string "equipe_nom", :limit => 30, :null => false
t.string "equipe_nom_pseudo", :limit => 8, :null => false
t.string "equipe_manager", :limit => 40
t.string "equipe_telephone_1", :limit => 22
t.string "equipe_adresse_email", :limit => 50
t.string "equipe_responsable", :limit => 50
t.timestamps
end
Я хочу изменить лимит поля equipe_nom с 30 до 150.
Как лучше всего это сделать?
Могу ли я использовать RAKE G MIGRATION .... ??
Благодарность
1 ответ
Прежде всего: не путайте команду rake
с командой rails
. Rake
- это команда, которая будет запускать задачи немного более сложные, чем команда make. rails
- это команда, предоставляемая фреймворком rails, например, для создания приложения, генерации миграций и т. Д. Вы получите список всех команд rails
и их действия, просто набрав rails
в терминале без параметров. rails g migration migrationname
сгенерирует для вас миграцию. Дополнительные сведения о миграции см. в этом руководстве по рельсам.
После этого есть две возможности решить вашу проблему:
- Если вы уже запускали эту миграцию раньше и это была ваша последняя миграция, вам нужно будет запустить
rake db:rollback
, затем изменить значение в файле миграции, которое вы показали выше, сохранить его, а затем запуститьrake db:migrate
опять таки. Это сначала отменит последнюю миграцию (в этом случае отбросит таблицу «equipes»), а затем снова запустит ее с вашими изменениями. - Если это более старая миграция, вы можете создать новую, выполнив
rails g migration change_equipe_nom_to_limit_150
. Посмотрите на созданный им файл. Внутриdef up
напишите:change_column :equipes, :equipe_nom, :string, :limit => 150
. Сохраните файл, запуститеrake db:migrate
Если вы не уверены, какой вариант подходит, просто сделайте второй. Это всегда будет работать.
Похожие вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.