Останнім роки у моїй бульбашці дуже пишно квітне любов до SQLite — до того, що люди декларують, що на цьому можна продакшен будувати, а як додаси litestream, то все, ховайся, яке життя добре буде.
Але SQLite ацтой для продакшена. Можливо колупати якісь невеличкі речі, зберігати там букмарки для файрфокса чи ще щось таке — це окей, але коли в тебе звичайна така веб-аппка на пару десятків сутностей, то я б краще жив не з ним, навіть якщо даних не дуже багато.
- Екстрабідна модель даних — на рівні JSON'у. Зберігай дати рядками, порівнюй як рядки, ура, фантастика. Привіт таймзонам, з якими кожен програміст дуже обережно працює. Йуху.
- Типізація дуже слабка. SQLite він трошки як жс чи там перл, він трошки пофігіст. Обережним треба бути тобі.
- Індекси по такій моделі даних, очевидно, теж не дуже багаті.
- Якщо в тебе не один процес, типу якоїсь жирної JVM, а стандартні пачки джанг/рельсів — капець конкурентний запис поламає життя. З JVM можна писати з одного треда і воно буде жити.
- Альтери не можуть зробити того, що може зробити
create table
. Наприклад,add column <name> default ...
зробити неможливо. Тобі це не треба. 🤪
Насправді думаю, що вам це все очевидно. Але щось склайта забагато в інфопросторі, аж здається, що всі почали забувати: воно для того випадку, коли є 1 апка з 1 користувачем. А мінімальний двіж, як у вебі — і SQLite стане препоною.
А дані — це найголовніше, що у вас є. Змінити мову програмування простіше, аніж базу та модель даних. Вибирайте розсудливо: вибирайте постгрес. 😁