Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2009-10-02

Как бы транзакции

Сегодня за день уложился полный цикл. Сломал сайт, починил сайт.
Испытывал сегодня языковый сервис для плона, LinguaPlone. По задумке, он позволяет легко поддерживать разноязычные версии страниц сайта. А на практике я сломал сайт.
Для установки предлагают воспользоваться механизмом buildout. Я воспользовался. Мне говорят - у тебя плон старый, надо новый. Я методом перебора нахожу версию продукта, подходящую к моему плону, билдаутю и вижу, ошибки компиляции питона. Тут бы мне похерить эту затею, или соломки подстелить. Нет, чего там. Билдаут еще раз, ошибок нет, запуск сервиса, установка продукта - бабах, exception.
Все, сайт поломался.

Чинил я его долго. Заколдованный круг какой-то. Удаляю продукт - сайт не работает, потому как при (неудачной) установке он успел зарегистрироваться в базе. Ставлю продукт, сайт не работает, потому как продукт кривой или криво встал. Удалить нельзя, потому как сайт лежит.
Вот что за транзакции такие? Обещали же - если в процессе обработки запроса будет ошибка, транзакции откатываются. Но, блин, факт - не все и не всегда откатываются.

Починил просто. Пошел в список транзакций (undo) и отменил все нафик. После чего снес продукт.

Мораль: смотрите внимательно, что вам на консоли и в логах пишут. Не игнорируйте предупреждений и тем более ошибок. Делайте резервные копии, для скорейшего восстановления. Тестируйте всякое на спец. полигонах, в виртмашинах со снапшотами, очень удобно.

Вот теперь думаю, еще попытку сделать установки многоязыкости или ну его нафик?


Сцылки дня:

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)