" title="Написать письмо">Написать письмо
Донаты на карту ВТБ:
2200 4002 2461 6363

Статистика

Пользователи : 1
Статьи : 2218
Просмотры материалов : 8346003
 
Миграция ОС из реалки в виртуалку-4 (04.08.2025). Печать E-mail
2025 - Август
04.08.2025 11:45
Save & Share
Предыдущие 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 )
 
 

Последние новости


©2008-2025. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).

Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
Top.Mail.Ru