http://iakov.davydov.name/blog/tag/mercurial/Iakov Davydov blog blog posts with tag intersection mercurial2008-09-14T15:53:41ZIakovdjango-atompubhttp://iakov.davydov.name/blog/2008/09/14/7-minutes/7 минут2008-09-14T15:53:41Z2008-09-14T15:08:50Z<p>Во время переезда на новый хостинг сервер не работал около семи минут. На сервере находятся две версии <a href="http://xkcd.myths.ru">архива</a>: обычная и отладочная. Естественно, они используют разные базы данных. Поэтому можно довольно свободно экспериментировать с отладочной версией, не боясь поломать основную. Когда отладочная версия работает хорошо, можно сделать <code>hg pull path_to_dev &amp;&amp; hg update</code>, и обычная версия обновится до&nbsp;отладочной. </p> <p>Процедура переезда была&nbsp;такова: </p> <ol> <li> Копирование исходников обеих версий на новый&nbsp;сервер. </li> <li> Изменение исходников отладочной версии до рабочего состояния (в основном исправление путей к файлам и путей на&nbsp;сервере). </li> <li> Отключение возможности записи в базу данных на старом сервере. Да, это довольно грубый хак, но в рассылке все были предупреждены. В <a href="http://www.mysql.com/">MySQL</a> это делается приблизительно так: <code>mysql&gt; REVOKE INSERT,DELETE,UPDATE on db.* from 'usr'@'localhost'; flush privileges;</code> </li> <li> Создание на новом домене (<span class="caps">DNS</span> запись которого была предусмотрительно переведена на новый сервер) новой рабочей копии архива. Для этого на старом сервере делаем: <code>python manage.py dumpdata &gt; backup.json</code>. Затем на новом <code>python manage.py syncdb</code>, <code>python manage.py</code> (вывод передаём в ваш любимый клиент) и <code>python manage.py loaddata backup.json</code>. </li> <li> Создание редиректа при помощи <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewrite</a> со старого сервера на новый (несколько простых правил). Собственно, на этом пункте и возник простой. Он длился точно не более 7 минут, а скорее всего меньше. Если бы я не поленился и отладил правила для mod_rewrite на другом сервере, то задержка составляла бы несколько&nbsp;секунд. </li> <li> Поднятие виртуального хоста для старого домена на новом&nbsp;сервере. </li> <li> Изменение <span class="caps">DNS</span> старого домена на новый&nbsp;сервер. </li> </ol> <p>Вся процедура заняла около двух часов спокойной работы (включая не быстрое перекачивание всех картинок со старого сервера на&nbsp;новый). </p>