Какой ваш # 1 способ быть осторожным с живой базой данных? - PullRequest
80 голосов
/ 03 октября 2008

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

Что вы # 1 делаете, чтобы быть осторожным при работе с живыми данными?

Ответы [ 52 ]

2 голосов
/ 04 октября 2008

Мое правило (как разработчика приложения): не трогай его! Вот для чего подготовленные администраторы баз данных. Черт, я даже не хочу разрешения трогать это. :)

2 голосов
/ 04 октября 2008

Разные цвета для каждой среды: мы настроили нашего разработчика PL \ SQL (IDE для Oracle), чтобы при входе в рабочую БД все окна были ярко-красными. Некоторые зашли так далеко, что назначили другой цвет для dev и test.

1 голос
/ 04 октября 2008

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

1 голос
/ 09 сентября 2009

Никогда не создавайте базы данных с каскадным удалением. Они злые. Если у вас есть каскадное удаление на FK, вы никогда не знаете, сколько строк в других ссылочных таблицах будет удалено при удалении строки с помощью оператора delete.

Тем не менее, вы не можете предполагать, что делают другие люди. Я всегда делаю это: 1. Скопируйте базу данных в локально установленную базу данных (используйте дампы). Просто скажите руководству, что вы отказываетесь работать, если у вас нет локальной копии полной базы данных. 2. Сделайте так, чтобы ваш скрипт работал на вашей локальной базе данных, импортируйте дамп снова и снова, пока скрипт не будет отлично работать на чисто импортированном дампе. Затем сохраните скрипт в файл на диске. 3. Запустите скрипт на рабочем сервере. 4. Импортируйте скрипт в SCM.

1 голос
/ 21 мая 2009

Я узнал об этом в интервью и подумал, что это отличная идея.

Begin Transaction
    Delete from foo where FooID = 100
IF @@RowCount <> 1 Begin
    Rollback Transaction
End  
1 голос
/ 04 октября 2008

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

1 голос
/ 03 октября 2008

Убедитесь, что вы указали условие where при удалении записей.

1 голос
/ 04 октября 2008
  1. Всегда делайте резервную копию перед изменением.
  2. Всегда создавайте моды (например, ALTER TABLE) с помощью скрипта.
  3. Всегда изменяйте данные (например, УДАЛЯЙТЕ) с помощью хранимой процедуры.
1 голос
/ 04 октября 2008
  1. если возможно, попросите кого-нибудь соединить
  2. всегда считайте до 3, прежде чем нажимать Enter (если он один, так как это разозлит вашего партнера по паре!)
1 голос
/ 03 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...