170 похожих чатов

Так чатик. К вам вопрос. Пишется библиотека для WebAuthn. Дошло дело

до включенных батареек. А именно: реализация стораджа.

Условно чтобы конечный пользователь библиотеки написал services.AddWebAuthnMsSql(connStr) и у него всё поехало.

И вот у меня вопрос. А как вам лично было бы удобнее работать с миграциями?
1) Готовый пакет, скажем Lib.MsSql.Migrations DbContext’ом внутри под вашу конкретную базу и экстеншоном к хосту, написать host.ApplyWebauthnMigrations и создалась база с таблицами.
2) Готовый пакет Lib.MsSql.Migrations, у которого из зависимостей только ADO драйвер под конкретную базу и метод «накатить схему». Ну т.е. никакой истории миграций и всего остального.
3) «Я сам знаю как лучше, дай мне голый SQL, я дальше разберусь». Условно SQL в Readme.md под конкретный сторадж.

Либо какой-то альтернативный вариант.

23 ответов

42 просмотра

это ты про миграции, которые накатывались бы в билд тайме?

Roman-Bukin Автор вопроса

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

Roman-Bukin Автор вопроса
Ayrat Hudaygulov
меня как юзера рантайм миграции либ мало волнуют. ...

Только подразумевается что ты ставишь одну конкретную реализацию и её юзаешь.

Roman Bukin
Только подразумевается что ты ставишь одну конкрет...

ну я говорю .AddYobaWebAuthN(opts -> opts.DbType = "postgres" opts.ConnString = "..." ) а ты уж там разберись как на неё накатить!

Roman-Bukin Автор вопроса
Roman Bukin
Только подразумевается что ты ставишь одну конкрет...

В противном случае у тебя абсолютно всё что есть внутри - на интерфейсах, все public методы виртуальные. Можешь собрать любую конструкцию

Я думаю, что норм сделать 1 и 3. 1 вариант можно будет юзать как из приложения, так и из отдельного проекта. 3 для любителей миграции схем держать в sql файлах

Имхо лучше дай SQL, а кому надо — завернут его в свою либу с миграциями, и им станет норм. Тебе меньше сношаться, и юзерам тоже (я вот, например, хз, как накатить несколько наборов миграций на разные датаконтексты и всё такое сразу разом на стартапе, и уж тем более на паблише или когда там ещё людям в голову взбредёт это делать). Если по мере развития либы будут апдейты схемы — то можно их мини-патчами выпускать вместе с релиз ноутами, а интеграция с какими-нибудь там EFCore'ными или даже флюент миграциями будет вечным источником попоболи для тебя. В данном случае, имхо, лучше эту попоболь переложить на юзеров.

у меня в ближайшем будущем базы все nosql, так что хотелось бы инструкций как такую либу к nosql подрубать и как оно будет между версиями работать

V S
у меня в ближайшем будущем базы все nosql, так что...

Тебе просто нужен другой сторадж. Я так понимаю, в либе будет интерфейс стореджа, и (потенциально) несколько искоробочных реализаций — под разные СУБД там или под БД провайдеры. Для NoSQL просто пишется ещё один сторедж, ну или же берётся искоробочный, если у тебя популярный NoSQL типа Монги.

Dr. Friedrich von Never
Тебе просто нужен другой сторадж. Я так понимаю, в...

ну вот я на это и надеюсь) чтобы либа как-либо не предполагала sql сторадж под собой

Roman-Bukin Автор вопроса
V S
у меня в ближайшем будущем базы все nosql, так что...

Там модель для хранилища развязана от основных моделей. За исключением енамов - они переиспользуются. В целом можно сконвертировать в JSON или любой другой формат внутри реализации интерфейса хранилища и сложить в любую бд

Roman Bukin
Там модель для хранилища развязана от основных мод...

Если ты можешь хранить в nosql сразу, лучше так и сделать

Roman-Bukin Автор вопроса
V S
ну вот я на это и надеюсь) чтобы либа как-либо не ...

Там 4 интерфейса где на вход/выход либо POCO, либо строки/массивы байт

Dr. Friedrich von Never
Лучше кому?

Лучше всем, сделать из sql nosql - изи, а вот наоборот - довольно трудно

Roman-Bukin Автор вопроса
V S
а покажи)

А это чуть попозже. Надо репозиторий на другую оргу перенести.

Roman Bukin
Там модель для хранилища развязана от основных мод...

кстати, насчёт энамов - в базе лучше их интами не хранить, а ориентироваться на string based enums

IHueMoeStorage + одна реализация на ef core для примера. Куда я твою отдельную базу деплоить буду? В свою же от сервиса авторизации, чтобы ты в минорном апдейте либы в миграцию добавил drop users; ?

сделать пачку интерфейсов типа IUserRepository и пусть юзер ебется с тем как он хочет их хранить

Dr. Friedrich von Never
Имхо лучше дай SQL, а кому надо — завернут его в с...

Как он даст SQL, если у него много баз поддерживается и возможно будет ещё больше

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Карта сайта