Короткий ответ
Когда нужна локальная или серверная база, миграции, backup, concurrency and security. Разбираем практический порядок работ, риски, стоимость и то, как принять результат без новых проблем.
Ниже — конкретные проверки, команды, таблицы и контроль результата. Выполняйте изменения только после резервной копии, если действие затрагивает рабочую систему.
Как выбирать БД
| Критерий | SQLite | PostgreSQL | SQL Server |
|---|---|---|---|
| Один ПК/локально | отлично | избыточно | избыточно |
| Много пользователей | ограничено | отлично | отлично |
| Сервер не нужен | да | нет | нет |
| Сложные права/централизация | ограничено | да | да |
| Экосистема Windows/AD | нейтрально | да | сильная интеграция |
| Offline app | отлично локально | сервер | сервер |
SQLite — не «плохая маленькая БД»
Для локального приложения одного пользователя SQLite часто идеальна: нет отдельного сервера и простое резервное копирование. Проблемы начинаются, когда файл БД используют как многопользовательский сервер через сетевую папку.
SQLite: включить foreign keys и WAL
PRAGMA foreign_keys = ON;
PRAGMA journal_mode = WAL;Перед выбором
| Вопрос | Ответ влияет на |
|---|---|
| пользователей | client/server DB |
| Нужен офлайн | local DB |
| storage/indexes | |
| Нужны отчёты/аналитика | SQL возможности |
| Есть AD/Windows infra | SQL Server может быть удобнее |
Как проверить результат
После изменений повторите исходный сценарий, зафиксируйте результат и убедитесь, что соседние функции работают так же, как до правки. Если проблема проявляется не всегда, проведите несколько повторов в одинаковых условиях и сохраните диагностические данные.