Миграция ОС из реалки в виртуалку-4 (04.08.2025). |
![]() |
2025 - Август |
04.08.2025 11:45 |
Предыдущие 3 части (раз, два, три) - посвящались ОС с железом и их различным комбинациям (в т.ч. как виртуалок). Здесь речь пойдет о миграции исходников. При правильном подходе - делается мгновенно и автоматически, но человеческий фактор - портит всё.
Ранее 1 ПК был единственным местом, в котором хранились и исходники, и настройки, и БД. Копирование этой информации - было только в рамках архивации. Теперь же, когда всё было перелопачено из-за внешних факторов, - ручной перенос исходников и настроек стал проблемой (особенно если учесть, что их создатели и конфигураторы - давно отсутствуют на физическом уровне x_x). Обычно, операция переноса должна делаться автоматом: остановил разработчиков, склонировал сервер на другой носитель и потом на ноутбук - и дело в шляпе, разрабатывайте себе дальше уже на новом месте. Однако заказчику приспичило изнасиловать разработчиков именно этим летом. В результате: - клонирование сервера из реалки в виртуалку и последующие работы с ней, чтобы всё работало корректно, - занимает дни-недели; - в это время активная разработка исходников продолжается на старом ПК, меняются и настройки, связанные с исходниками. В это время новый сервер относительно исходного уже имеет тонну изменений; - значит, исходники и настройки нужно переносить руками. Никто с 2014 года этого не делал - понеслась. Так как Linux не Windows - перенос исходников порождает выбор из 2 зол, т.к. при копировании файлов уничтожаются их права и принадлежность пользователю: - писать программу, исправляющую недостаток (считать параметры со старого сервера и присвоить их скопированным файлам); - присвоить данные параметры полуавтоматически: вручную, но одинаково по всем файлам. Был выбран этот путь: root и 777 (выставление исходного пользователя приводила к ошибке и открытия, и сборки). Перенос создателя инсталлятора не получился способом выше: нужно выставлять именно исходного пользователя и права именно 755 или 775 - включая и папкам. Занятно, что у исходных файлов права были совсем другими, - необходимые права на новом месте потребовал сам инсталлятор при своей работе (встроенный самоконтроль). То, что он работал со старыми неправильными правами на старом месте (недоделанный самоконтроль), - чистое везение. С переносом БД также возникли сложности (за пройденное время в ней не просто появились новые поля в таблицах, а новый тип данных: функции): - создание дампа через консоль командой PgAdmin, именно "pg_dump -U пользователь -d база -Fc > полный_путь"; - очистка БД вручную с помощью PgAdmin, если на приёмнике есть устаревшие данные: щёлкая на каждую таблицу и выбирая пункт вида "удалить каскадно" (у таблиц есть зависимости относительно друг друга); - накатывание БД через консоль командой PgAdmin, именно "pg_restore -U пользователь -d база полный_путь"; - почему-то функции после накатывания дампа отображаются не сразу - и даже перезагрузка не исправляет это. Появились минут через 10 после накатывания: раз - и число 0 функций сменилось на 5. С переносом настроек проекта - вышла целая эпопея. При переносе сервера на стационарный ПК - всё работало. При ручном переносе исходников на ноутбук, спустя примерно неделю, - программа запускается, но везде всё пусто. Грешишь на плохой параллельный перенос БД, роешься и в других местах, материшься пару дней. А потом выясняется: разработчик в этот промежуток времени - поменял один сторонний незначительный настроечный файл (и никому об этом не сказал, естественно). Перенёс отдельно именно этот файл - всё заработало. |
Обновлено ( 04.08.2025 13:34 ) |