Любой, который поддерживает версии миграции, up + down и произвольные sql-файлы, например https://github.com/rubenv/sql-migrate (но не только он)
https://gorm.io/docs/migration.html не подойдет?
Там ведь нет поддержки SQL? все строится либо на методах горма, либо на работе с *sql.DB, верно?
https://github.com/golang-migrate/migrate/ а как этот инструмент ? Меня смущает, что тут нет config файла, как в вашем инструменте
Я бы хотел иметь sql файлы миграций
судя по туториалу для postgresql поддерживает все описанные мной выше фичи - https://github.com/golang-migrate/migrate/blob/master/database/postgres/TUTORIAL.md
Только жалко, что конфиг файлов нет:(
да и фиг с ними
А rubenv тоже все нужные фичи поддерживает для postgres?
rubenv, как и многие другие либы, поддерживает набор SQL файлов с произвольным SQL
В горме вроде есть миграция, но есть один нюанс, горм это надстройка над pgx и в нём тоже есть миграции.
не совсем понимаю. Я могу как-то генерировать файлы миграций автоматически с GORMа?)
Не знаю, я категорически не использую орм и фреймворки, посмотрите доку.
Это круто. Но ты либо пишешь что то быстрое. Либо не пишешь реальные проекты)
Неа, я просто не использую сахар, там где это не нужно.
Я знаю только костыльный метод с запуском его миграции и копированием напечатанных запросов из консоли
pgx в горме с 2.0, до этого много лет он требовал *sql.DB c произвольно конфигурируемым драйвером. @ghostfantik у вас legacy код с GORM или новый?
Новый. Только начинаем проект
если начинаетe, то рассмотрите это https://github.com/ent/ent вместо GORM
А bun или go-pg не получше будет
ent же вроде как заточен на графоориентированные БД, вроде neo4j или postgis
Вот я тоже рассматривал go-pg, но увидел, что его заменяет Bun(написано на гитхабе go-pg)
так GORM это по сути тоже сущности и связи 1 к 1 , один ко многим, многие ко многим
А чем он лучше GORM?
GORM для SQL, к GORM вопросов нет, кроме его существенных недоработок
Каких недоработок?
автомиграций например, когда туда копнёшь то поймёшь что там ядро кривое, что влечёт за собой переписывание этой орм чуть более чем полностью
вопрос очень сложный, тк большинство претензий GORM vs ent были к верси горм 1.0, а по второй версии не видел пока "разоблачений" но это 2 основных конкуррента в этой области, так что как минимум рассмотреть стоит.
А как же Bun? Его пока не стоит брать в продакшн ?
про него никогда не слышал. Скажу так - лучше попробовать все из возможного на старте, чем потом рефакторить на готовом проекте 🙂
go-pg вроде как забросили...
Обсуждают сегодня