Обновить

Интерактивный SQL в браузере: как я создал встраиваемую песочницу с поддержкой 20+ СУБД

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.9K
Всего голосов 10: ↑9 и ↓1+11
Комментарии14

Комментарии 14

Непонятно. На каждый запрос поднимается контейнер с MSSQL? А что если статья популярна и сто человек повезут?

Нет, контейнер не поднимается на каждый запрос, но для каждого запроса в контейнере создается изолированная сессия

А create table и все stateful?

Каждый вызов - stateless, весь код каждый раз выполняется заново в чистой базе данных, за исключением котовых баз данных, таких как Sakila, Bookings,

Штука интересная. А начальное состояние базы можно подсунуть?

Пока есть только несколько готовых баз данных (включая bookings для PostgreSQL). Если вам нужно что-своё свяжитесь со мной - обсудим. Телеграм: @srozhnev почта: rozhnev@msn.com

Тут вот какой момент, раз уж речь о технических статьях. Что, если мы хотим сначала показать таблицу и insert-ы, а потом (в отдельных div-ах) показывать всякие запросы к этой таблице, не повторяя каждый раз вставку? Вроде это довольно-таки базовый сценарий для статей.

Я думаю что в ближайшее время смогу предоставить решение этой проблемы.

В качестве быстрого решения я могу реализовать цепочку контейнеров. У каждого контейнера можно будет указать родителя и каждый вызов будет собирать весь код в один и ввполнять его при запуске кода в контейнере потомке.

https://sqlize.online/embed#chaining

Идея отличная. Вопрос по архитектуре: правильно ли я понимаю, что выполнение полностью stateless и пользователь не может накопить состояние между запросами, кроме предустановленных демо-баз? Интересно, рассматривал ли ты режим «короткой сессии» на N запросов для более сложных туториалов или это принципиально против модели безопасности?

Да всё верно, в данной версии каждый сниппет выполняется в изолированной среде, но если будет задача на другое поведение можно будет найти решение.

Добавил влзможность цепочек запросов.

https://sqlize.online/embed#chaining

Можно ли взглянуть на исходный код?

Фронта - да. Скачайте скрипт и изучайте, может подскажете как улучшить.

Бэк я предпочитаю не открывать.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации