field-ами и кверить их с помощью ecto?
Насколько я понял, что в такой ситуации, field-ы в ecto захардкодены быть atom-ами, что вызовет проблему того, что пользователь может создать миллион разных field-ов в разных таблицах и тогда случится crash.
Вопросы:
1) кто-то сталкивался с этим и знает, можно ли это решить с ecto?
2) поднимал ли кто-то такой вопрос раньше?
3) или ecto не подходит тогда для решения такой задачи в принципе?
Концептуально, можно посмотреть на airtable
Можно кверить без схемы и селектить мапу.
Ecto.Query умеет только с атомами как с именами полей. Ecto.Schema тоже с именами полей атомами Можно вызывать EctoSQL с голыми кверями строками
Что значит "селектить мапу"?
Мне кажется, никто не запрещает сделать кастомную структуру, которая будет Ecto.Queryable Но вообще, я не понимаю как можно делать запросы по таблицам, которые задаются в рантайме, но для которых неизвестны имена колонок в компайле
Если ты схему загружаешь в рантайме, делая rest-обёртку для базы, например.
Во-первых, postgrest и аналоги Во-вторых, схемы тут всё равно присутствуют. Только они не на сервере, а где-то на клиенте
Я знаю про postgrest. Я просто предложил кейс, где такая задача может возникнуть.
Легко, когда твой пользователь пишет и эти запросы.
Да хотя бы select * from... limit 10 - чтобы посмотреть(показать пользователю) что там вообще есть. Даже это мне ecto не даёт сделать.
Ну да, потому что Ecto это ORM
Ты ему скармливаешь "объекты", а он тебе даёт связь этих объектов с сущностями из базы
Ну вот тогда нужно Ecto.Queryable своими руками Но я не понимаю зачем тут Ecto вообще нужен
1) пользователь может делать не всё, а только то, что система ему позволяет 2) менять базу данных, где могут храниться его данные (как раз ecto - кейс ecto)
Ну а как jsonb их нельзя заливать? И динамическую query к этой колонке/таблице?
Обсуждают сегодня