Это 4 урока, которые мне пришлось усвоить на собственном горьком опыте.

Это время года, чтобы рассказывать истории, однако это реальная история, основанная на моем собственном опыте, который был очень ценным и научил меня нескольким вещам!

Это было 31 декабря 201x года (точный год не помню), но это было где-то между 2010 и 2019 годами, я думаю, мое подсознание хочет забыть об этом!

В течение предыдущих 6 месяцев я работал над специально разработанным программным обеспечением, чтобы помочь магазинам упорядочить свои системы запасов, чтобы у них была точная информация о том, что у них есть в их магазинах в реальной жизни (в отличие от того, что их система сказала, что у них есть ) в одно и то же время (с учетом любых ошибок ввода, сломанных запасов и т. д.).

Это заключалось в ручном подсчете реальных запасов, а затем в сравнении с внутренним программным обеспечением, которое они использовали для продаж в магазине, и создании некоторых счетов-фактур/накладных на покупку, если это необходимо, чтобы либо добавить запас к данному продукту, либо вычесть, если в системе их было больше, чем в реальной жизни.

И, конечно же, в некоторых магазинах были бы тысячи различных товаров, и они не могли позволить себе закрыться на целый месяц, чтобы сделать это, поэтому программное обеспечение должно было учитывать, что при применении изменений оно также должно учитывать, если данный товар были проданы или куплены за это время.

По юридическим причинам заказчику нужно было сделать это к началу года, поэтому мы начали работать заблаговременно, у них было достаточно много товаров и много продаж каждый день, поэтому больше месяца мы работали над этим день за днем.

Итак, наконец, 31 декабря мы закончили подсчет всех продуктов, которые были во всех их магазинах, и хотя мы применяли поправки каждый день, нам все еще нужно было сделать это для последних продуктов, которые мы сделали в тот день.

Я вернулся домой после очень долгого рабочего дня, был вечер, и мне все еще нужно было позаботиться о некоторых других вещах, пока я работал над внесением исправлений, я заметил, что некоторые продукты были далеко и могут вызвать некоторые проблемы в расчетах, поэтому я решил исправить их вручную, прежде чем продолжить.

Это было около 11 часов вечера, и я уже так устал, но мне нужно было просто закончить с этим, чтобы у меня наконец был выходной 1 января, поэтому я продолжал настаивать.

Я открыл базу данных и написал SQL-запрос UPDATE, чтобы обновить номер из этого конкретного продукта, и нет, я не забыл добавить предложение where, на самом деле я сначала сделал и проверил предложение SELECT, которое вернуло правильные элементы, а затем использовал тот же фильтр WHERE для обновления.

Затем я иду и выполняю ОБНОВЛЕНИЕ, и бум… это случилось…

У меня начался холодный пот, мое лицо побелело, как будто я был призраком, и прочитал 4500 строк, затронутых…

Подождите минутку, что?

Мне нужно было обновить только одну строку! что только что произошло?

Хотя у меня было предложение WHERE при его выполнении, оно не было выбрано, поэтому обновление выполнялось для всех строк в таблице.

К счастью, в прошлом я реализовал хорошую стратегию резервного копирования, чтобы каждый день мы делали правильное резервное копирование, но этого было недостаточно, в идеале у меня должна была быть резервная копия непосредственно перед тем, как вносить какие-либо изменения той ночью, после всего магазина. был уже закрыт, и в эти поздние часы не должно было происходить никаких новых действий.

К счастью для меня, так как запас рассчитывался динамически, мне удалось восстановить правильные цифры, хотя мне пришлось сделать это для всех продуктов, а не только для недостающих, но на это у меня ушло полдня.

Уроки выучены

  1. Убедитесь, что у вас есть хороший план аварийного восстановления, который включает как минимум ежедневное резервное копирование, если не чаще.
  2. Всегда делайте резервную копию последней БД, прежде чем делать что-либо важное, чтобы вы могли легко откатиться и исправить все, что вы могли сломать.
  3. По возможности избегайте автоматических коммитов, в данном случае все мои запросы выполнялись автоматически.
  4. Хватит, не перенапрягайтесь, есть вероятность, что вы все испортите, отдохнете и вернетесь к этому позже или на следующий день, если это возможно.

Вам помогла данная статья?

Поделитесь своими комментариями и опытом! Поделитесь с нами вашими мыслями.

Обязательно похлопайте этому посту, если он вам понравился и вы хотите увидеть больше.

И чтобы быть в курсе, обязательно следите за новостями до следующего раза!

Вы ищете наставника? связаться!

Ссылки на мои социальные сети вы можете найти здесь: https://linktr.ee/gnstudenko