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

Привет! Ни у кого не было необходимости создавать таблицы с динамическими

field-ами и кверить их с помощью ecto?
Насколько я понял, что в такой ситуации, field-ы в ecto захардкодены быть atom-ами, что вызовет проблему того, что пользователь может создать миллион разных field-ов в разных таблицах и тогда случится crash.

Вопросы:
1) кто-то сталкивался с этим и знает, можно ли это решить с ecto?
2) поднимал ли кто-то такой вопрос раньше?
3) или ecto не подходит тогда для решения такой задачи в принципе?

Концептуально, можно посмотреть на airtable

14 ответов

14 просмотров

Можно кверить без схемы и селектить мапу.

Ecto.Query умеет только с атомами как с именами полей. Ecto.Schema тоже с именами полей атомами Можно вызывать EctoSQL с голыми кверями строками

Мне кажется, никто не запрещает сделать кастомную структуру, которая будет Ecto.Queryable Но вообще, я не понимаю как можно делать запросы по таблицам, которые задаются в рантайме, но для которых неизвестны имена колонок в компайле

Lama Lover
Мне кажется, никто не запрещает сделать кастомную ...

Если ты схему загружаешь в рантайме, делая rest-обёртку для базы, например.

Андрей
Если ты схему загружаешь в рантайме, делая rest-об...

Во-первых, postgrest и аналоги Во-вторых, схемы тут всё равно присутствуют. Только они не на сервере, а где-то на клиенте

Lama Lover
Во-первых, postgrest и аналоги Во-вторых, схемы ту...

Я знаю про postgrest. Я просто предложил кейс, где такая задача может возникнуть.

Dmitry-A.R. Автор вопроса
Lama Lover
Мне кажется, никто не запрещает сделать кастомную ...

Легко, когда твой пользователь пишет и эти запросы.

Dmitry-A.R. Автор вопроса
Lama Lover
Мне кажется, никто не запрещает сделать кастомную ...

Да хотя бы select * from... limit 10 - чтобы посмотреть(показать пользователю) что там вообще есть. Даже это мне ecto не даёт сделать.

Lama Lover
Ну да, потому что Ecto это ORM

Ты ему скармливаешь "объекты", а он тебе даёт связь этих объектов с сущностями из базы

Dmitry A.R.
Легко, когда твой пользователь пишет и эти запросы...

Ну вот тогда нужно Ecto.Queryable своими руками Но я не понимаю зачем тут Ecto вообще нужен

Dmitry-A.R. Автор вопроса
Lama Lover
Ну вот тогда нужно Ecto.Queryable своими руками Н...

1) пользователь может делать не всё, а только то, что система ему позволяет 2) менять базу данных, где могут храниться его данные (как раз ecto - кейс ecto)

Ну а как jsonb их нельзя заливать? И динамическую query к этой колонке/таблице?

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта