Регистрация  |  Вход

Небольшая поучительная история - никогда не удаляйте записи в базе данных.

Последнее время вы наверное замечали что сайт валился с ошибками на некоторых страницах.

Просто у меня реально БОЛЬШОЙ косяк всплыл, хорошо что благодаря хорошим людям разобрался. А косяк был очень показательный - плохо использовать какие-то компоненты не до конца с ними разобравшись. Вот Devise мощьный gem для авторизации в Rails - прикрутил и забыл. Вот я прикрутил и забыл. А там оказывается была возможность удалять свой акк (запись User), на которую я не обратил внимания. Вот один товарищ и удалил свой акк и и создал новый и все его записи подвисли с user=null. Хорошо, что он один и помогло просто изменение user Id на старый.

Какие полезные выводы (не столько для Salesforce сколько в общем):
1. Никогда не удаляйте записи на которые ссылаются. Проще добавьте isDeleted поле и ставьте его в true, а в выборке просто фильтруйте.
2. Бэкапьте базу периодически - ежедневные бэкапы помогли разобраться в чем косяк.
3. Изучайте все возможности используемых инструментов, особенно на предмет деструктивных (удаленя)
4. Ну и конечно проверка на null не помещает но не везде же ее вставишь, да и проверять что пользователь, статьи которого собираемся показывать тупо испарился это надо еще додуматься

Последнее время вы наверное замечали что сайт валился с ошибками на некоторых страницах.

Просто у меня реально БОЛЬШОЙ косяк всплыл, хорошо что благодаря хорошим людям разобрался. А косяк был очень показательный - плохо использовать какие-то компоненты не до конца с ними разобравшись. Вот Devise мощьный gem для авторизации в Rails - прикрутил и забыл. Вот я прикрутил и забыл. А там оказывается была возможность удалять свой акк (запись User), на которую я не обратил внимания. Вот один товарищ и удалил свой акк и и создал новый и все его записи подвисли с user=null. Хорошо, что он один и помогло просто изменение user Id на старый. 

Какие полезные выводы (не столько для Salesforce сколько в общем):
1. Никогда не удаляйте записи на которые ссылаются. Проще добавьте isDeleted поле и ставьте его в true, а в выборке просто фильтруйте.
2. Бэкапьте базу периодически - ежедневные бэкапы помогли разобраться в чем косяк.
3. Изучайте все возможности используемых инструментов, особенно на предмет деструктивных (удаленя)
4. Ну и конечно проверка на null не помещает :) но не везде же ее вставишь, да и проверять что пользователь, статьи которого собираемся показывать тупо испарился это надо еще додуматься :D