Ваши разработчики должны записать сценарии изменения (схема и изменение данных) для каждой ошибки/функции, они продолжают работать, не просто выводят всю базу данных в управление исходным кодом. Эти сценарии обновят текущую производственную базу данных до новой версии в разработке.
Ваш процесс сборки может восстановить копию производственной базы данных в соответствующую среду и выполнить все сценарии от управления исходным кодом на ней, которое обновит базу данных к текущей версии. Мы делаем это ежедневно для проверки всех сценариев, выполненных правильно.
Как говорили другие, общий ответ - использовать dd "kP. Я хотел бы добавить, что вы можете использовать: g, так что если вы хотите заменить все строки, соответствующие 'foo', содержимым регистра k, вы можете сделать:
:g/foo/normal dd"kP
Обратите внимание, что использование p вместо P вызовет некоторые проблемы, если первая строка вашего буфера соответствует шаблону.
перейти в любое место заменяемая строка. Выполните буфер P (поставлен выше). Используйте dd для удаления текущей строки.
so "xPdd
Перейдите в строку, которую вы хотите изменить, и выполните
V"kp
лучший способ, которым я могу подумать на месте, - это
"ауу (это дергает / копирует строку в" буфер
, затем
dd (удалите строку в стандартный буфер)
затем
«AP, который вставляет буфер» a перед текущей строкой
Клавиша кавычек "- это то, что вам нужно. Это делает ваш регистр yank / put специфичным. Итак, у вас есть что-то в регистре k, и вы хотите заменить текущую строку на нее, которую вы набираете:
^c$<esc>"kp
Вы можете использовать ctrl-v и выбрать то, что вы хотите скопировать, и нажать «y», чтобы «дернуть» его. Затем ctrl-v или shift-v выберите «несколько строк», которые вы хотите заменить, и нажмите «p», чтобы вставить их.