Как удалить некоторые функции из приложения Rails - PullRequest
1 голос
/ 07 октября 2009

У меня есть приложение rails, в котором я реализовал некоторую функцию. Теперь я хочу удалить эту функцию, не нарушая код. Поскольку приложение работает на производственном сервере, это делает его немного критичным. Как мне сделать следующее.

  • удалить все таблицы из базы данных, связанные с этой функцией?
  • удалить контроллеры, модели и просмотреть файлы?
  • исправить другие контроллеры и представления, связанные с этой функциональностью?

Первый может быть достигнут с помощью генерации миграций, которые приводят к обратному результату, к которому пытаются создать таблицы, связанные с этой функциональностью. Как мне поступить в направлении удаления кода? Я использую git в качестве менеджера исходного кода.

Ответы [ 2 ]

1 голос
/ 07 октября 2009

Создайте несколько миграций для удаления ненужных теперь баз данных / полей

Удалите контроллеры, модели и файлы просмотра

Исправьте все, что сейчас не работает (надеюсь, вы пишете тесты)

Отправьте свой код на промежуточный сервер и убедитесь, что все работает правильно.

Когда все в порядке, отправьте свой код в производство.И вы должны бросить.

0 голосов
/ 07 октября 2009

Используйте git, чтобы создать отдельную ветку (я назову ее «меньше»), и внесите все изменения в эту ветку. Таким образом, ваш сайт продолжает работать. У вас должна быть другая копия вашего приложения, запущенная где-то (например, на вашем локальном компьютере), которая запускается из ветви "less".

Очень важно, чтобы у вас были тесты, чтобы гарантировать, что удаление функций не нарушит что-то непреднамеренное. Запустите ваши тесты на тестовом сервере (запустив ветку "less").

Как только ваш тестовый сервер работает нормально и ваши тесты работают нормально, объедините вашу ветку "less" с вашей "master" веткой (с которой работает ваш рабочий сервер). Перетащите изменения на рабочий сервер, перезапустите, и все готово.

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