Вопрос

Прямо сейчас у меня есть код, который создает базу данных (всего несколько заправочных запросов на базе данных SQLite) в моем главном классе доступа к базе данных. Это кажется ненужным, так как я не собираюсь использовать код. Мне просто нужно, если что-то пошло не так, и мне нужно было воссоздать базу данных. Нужно ли мне...

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

Решение

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

Это важно по следующим причинам.

  1. Вы, вероятно, будете удивлены, сколько раз вам нужно. Если вам нужно перенести свой сервер или настроить другую среду (например, тест или демонстрацию) и так далее.
  2. Я также обнаруживаю, что я рекомендую DDL SQL довольно часто при кодировании, особенно если я некоторое время не затронул систему.
  3. У вас есть ссылка на принятие решений, таких как созданные вами индексы, уникальные ключевые ключи и т. Д.

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

Другие советы

Мне просто нужно, если что-то пошло не так, и мне нужно было воссоздать базу данных.

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

Но да, он должен быть отделен от кода доступа; Так что опция 2 правильная. Отдельный скрипт затем может использоваться тестами, а также для развертывания.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top