Rails: изменение миграции на ранних этапах разработки - PullRequest
3 голосов
/ 15 августа 2010

На самых ранних этапах разработки приложения Rails я предпочитаю изменять файлы миграции напрямую, чтобы добавлять новые столбцы (поля) в мои таблицы (модели), а не накапливать миграции для изменения полей и / или внесения небольших изменений. .

Возможно ли это в Rails?

Ответы [ 6 ]

9 голосов
/ 15 августа 2010

Я запускаю следующие команды для решения этой проблемы. Сохраните его в сценарии, и вы готовы к работе! Конечно, это предполагает, что потеря данных - это хорошо. В любом случае загрузку приборов достаточно легко добавить в этот скрипт.

#!/bin/sh
rake db:drop
rake db:create
rake db:migrate --trace

PS: Мой друг, который дал мне эту идею, называет этот скрипт rake_dance:)

8 голосов
/ 15 августа 2010

Предположительно тот факт, что вы делаете это, указывает на то, что это возможно!

3 голосов
/ 26 августа 2010

Самое чистое решение, основанное на решении Vijay Dev, состоит в создании граблей:

namespace :db do
  desc "Drops, recreates and seeds the database."
  task :reload => [:drop, :create, :migrate, :seed] do
    Rake::Task['db:drop'].invoke
    Rake::Task['db:create'].invoke
    Rake::Task['db:migrate'].invoke
    Rake::Task['db:seed'].invoke
  end
end
1 голос
/ 19 июня 2011

дБ: сброс делает то, что предлагает Омар.

0 голосов
/ 02 июня 2011

Обнаружено, что мы можем объединить все в одну команду:

rake db:drop db:create db:migrate db:seed

Использование псевдонима оболочки позволяет легко повторить все старые миграции.

0 голосов
/ 15 августа 2010

Я рекомендую использовать фиксаторы при использовании этого подхода (поскольку он позволяет быстро воссоздавать образцы данных для приложения после удаления базы данных для воссоздания).Другой вариант - http://datamapper.org/ (не требует миграций).

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