Skip to content

Latest commit

 

History

History
415 lines (309 loc) · 45.5 KB

README_uk.md

File metadata and controls

415 lines (309 loc) · 45.5 KB

SQLantern - Багатопанельний менеджер баз даних

Поточна версія: v1.9.12β (публічна бета) | Changelog
Ліцензія: GNU General Public License v3.0

SQLantern - це менеджер баз даних (скоріше переглядач даних) в веббраузері, розроблений для високої продуктивності, із новою концепцією: відображення багатьох таблиць бази даних бік-о-бік в окремих панелях.
Це інструмент для всіх користувачів баз даних, професіоналів і аматорів: програмістів, тестувальників, аналітиків, архітекторів і адміністраторів баз даних.
SQLantern зручний для демонстрацій, викладання і навчання.

Це інструмент керування даними із багатопотоковістю (кожна панель незалежна), можливістю одночасної роботи в багатьох базах даних, на багатьох серверах, під багатьма логінами.
Дані можна виводити горизонтально (панелі) і/або вертикально (екрани).
Збудуйте високу вежу панелей, або довгий мур, або поєднайте одне із іншим у Великій Панельній Стіні.
Облаштовуйте простір, як Вам до вподоби.

SQLantern - це веб-застосунок для браузеру (односторінковий застосунок), написаний на HTML, CSS, JavaScript і PHP.
Для роботи з ним потрібні веб-браузер і веб-сервер.
Підтримуються бази даних MariaDB/MySQL та PostgreSQL.
Це вільне програмне забезпечення із відкритим програмним кодом.

Інструмент підійде тим, хто працює із базами даним подібно до мене:

  • ЗАВЖДИ із багатьма таблицями бази даних,
  • ЗАЗВИЧАЙ із багатьма базами даних,
  • ДУЖЕ ЧАСТО із багатьма серверами баз даних.

SQLantern поєднує це в одному табі/вікні браузеру.
Якщо у Вас схожі потреби, то варто його спробувати.

Дуже раджу відвідати офіційне демо: https://sqlantern.com/uk/
(Краще один раз побачити і спробувати, аніж лише прочитати, правда ж?)

Багатопанельний менеджер баз даних

В SQLantern є 4 види панелей. Будь-яка кількість панелей будь-якого виду може бути відкритою одночасно, і панелі перевпорядковані як завгодно.
Немає ніяких програмних обмежень на кількість одночасно відкритих панелей, лише ресурси пристрою.

Панель зі з'єднаннями


Якими б не були Ваші плани і з яким би набором панелей Ви не працювали, робота завжди починається з цієї панелі.
Панель з'єднань показує форму нового з'єднання, список поточних з'єднань, або й те, і інше одночасно.
При додаванні з'єднання або натисненні на з'єднання в списку, відкривається наступний тип панелі...

Панель із базами даних


Це список баз даних на сервері, до яких вказаний логін має доступ.
Як і з іншими панелями, можна вивести на один екран багато різних списків баз даних (різні сервери та/або логіни), або багато копій одного й того ж списку.

Панель із таблицями бази даних


Це список таблиць в обраній базі даних.
Натисніть на одну з таблиць, щоб видкрити найбільш важливий тип панелі...

Панель із даними таблиці

Фактично, це панелі з результатами будь-якого SQL запиту, які для зручності відкриваються із даними обраної таблиці.
В цих панелях можна і треба запускати будь-які запити.

Можна відкрити поруч багато панелей із даними з різних таблиць:

Або багато панелей із даними з однієї таблиці:

Узагальнюючи, SQLantern виводить бік-о-бік, в одному табі веббраузеру, дані з однієї таблиці бази даних або з різних таблиць, з однієї бази даних або з багатьох баз даних, з одного серверу або з багатьох серверів.

Екрани в SQLantern

Виводити поруч багато панелей не завжди логічно і зручно, навіть при роботі в одній базі даних.
Для цього існує іще один вимір - "екрани".
Кожен екран - це незалежний набір панелей.
(Працювати в один момент часу можна лише на одному екрані.)
Натисніть "Додати екран", щоби створити новий пустий екран:

Натисніть "Попередній екран" або "Наступний екран", щоб переключитись на сусідні екрани:
Натисніть "Змінити екран", щоб перейти на будь-який довільний екран або перемістити панелі між екранами:

SQLantern - це не...

SQLantern не "краще" і не "гірше" за альтернативи (phpMyAdmin, adminer, і т.і.), натомість він дуже від них відрізняється.

В ньому немає багатьох функцій, які мають альтернативи, а альтернативи не надають тих можливостей, що є в SQLantern, і це, на мою думку, робить будь-які порівняння недоречними.

Я вважаю, що популярні менеджери баз даних (phpMyAdmin, adminer, pgAdmin, та інші) хороші для керування базами даних і для проєктування баз даних, але ледь прийнятні для перегляду даних і роботи із даними. Отож, для заповнення цієї прогалини і призначений SQLantern: в ньому немає функцій для керування і проєктування, проте фокус на зручному та ефективному виведенні даних.
(Звісно, в SQLantern можна виконувати будь-які запити SQL і керувати базами даних ручними командами. Але немає жодних візуальних засобів, які б це спрощували.)

Логіни, хости, порти, драйвери

Введіть логін example, щоби з'єднатись як користувач example із сервером за замовчанням через порт за замовчанням.
Сервер за замовчанням - localhost, порт за замовчанням - 3306 (обидва значення можна змінити).
Логін example - це те ж саме, що example@localhost або example@localhost:3306.

Щоб з'єднатись із сервером не за замовчанням, додайте "@", після якого напишіть хост або IP.
Наприклад, example@example.com, example@1.1.1.1.
Щоб з'єднуватись із іншими серверами, треба дозволити багатосерверні з'єднання (дивіться серверні налаштування нижче).

Сервером за замовчанням може бути будь-який хост або IP, локальний чи віддалений.
Якщо Вам потрібно працювати лише з одним сервером, але це не localhost, не вмикайте багатосерверні з'єднання, а змініть сервер за замовчанням на своїй копії SQLantern (дивіться серверні налаштування нижче).

Щоб з'єднатись за портом не за замовчанням, допишіть до логіну хост (навіть якщо це сервер за замовчанням), потім ":", а далі порт.
Наприклад, example@localhost:33306, example:1.1.1.1:30306.
Завжди вказуйте хост при з'єднанні через порт не за замовчанням, навіть до серверу за замовчанням.
Щоби взагалі можна було використовувати порти не за замовчанням, необхідно змінити схему порти-драйвери (дивіться серверні налаштування нижче).
Можна встановити за замовчанням інший порт, аніж 3306, це також змінюється в серверних налаштуваннях.

Однофайлова версія з'єднується лише із сервером localhost через порти 3306 і 5432. (Хіба що Ви знаєте як, і зміните програмний код своєї копії.)

Профілювання запитів

Профілювання - це дуже вагома і одна з наважливіших функцій SQLantern, прихована за маленькою іконкою, через що її легко пропустити, якщо про неї не знати.
(Хоча це одна з головних причин, чому SQLantern був взагалі зроблений.)
Іконка секундоміра в будь-якій панелі із таблицями бази даних перемикає цю панель між списком таблиць і профілюванням запитів.

У профілювання є свій власний файл README

Особливості

SQLantern працює як в директорії на вебсайті (наприклад, https://example.com/sqlantern), так і на субдомені (наприклад, https://sqlantern.example.com/).

Будь-який запит може автоматично повторюватись, безкінечно, із довільною перервою між запусками.
Хоч зазвичай це рідко потрібно, це дуже корисно для спостереження за змінами даних, або для очевидного SHOW FULL PROCESSLIST.
Натисніть стрілку поруч із кнопкою "Пуск", щоб відкрити налаштування таймеру. Коли це налаштування відкрите (коли його видно), запит буде автоматично перезапускатись.
Можна паралельно запустити декілька запитів із повторенням (в різних панелях).

Панелі можуть мати назву для додаткового контексту (нажміть іконку в формі ручки: ).

Tab в полі Запит вставляє символ табуляції.
Tab, якщо вибрано багато рядків, вставляє символ табуляції на початку кожного рядку (подібно текстовим редакторам).
Shift + Tab, якщо вибрано багато рядків, видаляє символ табуляції з початку кожного рядку (так само, подібно текстовим редакторам).
Enter переносить рядок.
Ctrl + Enter запускає запит.

Для переходу на довільну сторінку у багатосторінковій таблиці із даними, можна перейти в поле із номером сторінки, написати в ньому бажаний номер, і натиснути Enter.

SQLantern підтримує MariaDB/MySQL та PostgreSQL.
Якщо Вам потрібні інші системи керування базами даних, допоможіть мені написати серверний код для них, будь ласка (це не важко, чесне слово).

Підтримується лише виконання одного запиту в одному полі Запит, і так буде й надалі.
(Потенційний обхідний шлях - текстовий режим в "Імпорті", але він не виведе жодних результатів SELECT, лише загальну кількість виконаних запитів.)

Для текстових нотатків є вбудований Блокнот, що зберігається у внутрішньому сховищі веб-браузеру, із прив'язкою до домену ("LocalStorage").
Тобто, текст зберігається в Блокноті, доки Ви в тому самому браузері і на тому самому домені. Інший браузер = інший Блокнот. Інший домен = інший Блокнот. (Той самий браузер в режимі інкогніто = також інший Блокнот.)

Жодних функцій проєктування баз даних немає і не буде, щоб код залишався простим. Будь ласка, не вважайте це недоробкою, дизайн баз даних не планується.
За задумом, SQLantern має бути одним з інструментів (разом із phpMyAdmin, Adminer, PgAdmin, або будь-яким іншим програмним забезпеченням), а не одним-єдиним інструментом.

Системні вимоги

Сервер із PHP 5.6+
Включені сесії в PHP
Веб-браузер із дозволеними файлами cookie

НЕ ПОТРЕБУЄ інтернету (не містить жодних зовнішніх посилань/ресурсів)

Випробувано із:

  • MariaDB 10.1.37+ (вийшла в 2018)
  • MySQL 5.5.52+ (вийшла в 2016)
  • PostgreSQL 11.12 (вийшла в 2021)

Встановлення

У SQLantern немає процедури встановлення, він працює одразу після розгортання файлів.
Існує повна версія, однофайлова версія, і інтегровані з CMS версії (для Joomla і OpenCart).
Яку версію обрати, залежить від Ваших потреб.

Найвагоміші причини обрати повну версію:

  • Вам потрібні нестандартні порти,
  • Вам не підходить сервер "localhost" за замовчанням,
  • Вам потрібні з'єднання з багатьма серверами з одного SQLantern.

Якщо Ви не знаєте або не впевнені, яка версія Вам потрібна, скоріше за все Вам підійде однофайлова версія або інтеграція із CMS.

Якщо Ви досвідчені у git і хочете простих подальших оновлень, або Вам потрібний форк із кастомною конфігурацією, Вам слід клонувати цей репозитарій.

Якщо Ви не можете або не хочете використовувати git, але потребуєте більше налаштувань, аніж доступно в однофайловій версії, Вам слід використовувати повну версію без git.

Встановлення інтегрованої з CMS версії

Це моя рекомендація номер один, бо ці версії найбільш захищені, найлегші у встановленні і використанні - вони надають моментальний доступ до бази даних вебсайту, у два кліки.
Якщо Вам треба працювати лише з цією базою даних, спробуйте цю версію.
Недолік, власне, в тому, що у Вас буде доступ лише до однієї бази даних. Додати інші з'єднання неможливо.

Поки що існують лише версії для Joomla (v3.x, v4.x) і OpenCart/ocStore (v2.3, v3.x).
Детальніше у окремому репозитарії.

Скачайте zip-файли з sqlantern.com або окремого репозитарію і встановіть в CMS як звичайне розширення.

Встановлення однофайлової версії

Це моя друга рекомендація для більшості користувачів.
Якщо Ви не можете або не хочете використовувати git, або розпаковувати файли на сервері (можливо, у Вас є лише FTP доступ), або завантажувати декілька файлів, спробуйте цю версію.
Я переконаний, що це універсальна версія для найширшої аудиторії. Її найшвидше розгортати (вона найбільш "переносна") і вона працює у більшості випадків. (І вона також найбільш дружня до менш досвідчених з нас.)
Навіть я сам завжди використовую її на нових проєктах - це просто швидше.

Найважливіша та найкритичніша відмінність від повної версії в тому, що однофайловий SQLantern зовсім не читає файли конфігурації ("config.sys.js" та "config.sys.php"), що має наступні наслідки:

  • однофайлова версія з'єднується лише із "localhost",
  • однофайлова версія з'єднується лише через стандартні порти (через 3306 із MariaDB/MySQL і через 5432 із PostgreSQL).

Скачайте файл "sqlantern.php" з sqlantern.com або з "Релізів" в цьому репозиторії GitHub, і завантажте в обране місце.

Запуск SQLantern в Docker

Якщо у Вас стек без PHP (або Docker Вам просто зручніший), є компактний контейнер із SQLantern для Docker (~30MB).
Деталі в репозитарії на Docker hub, або можна скачати і зібрати Dockerfile з GitHub.

Встановлення з GitHub

Клонуйте цей репозиторій в обране місце:
git clone https://github.com/nekto-kotik/sqlantern.git (створить піддиректорію "sqlantern")
або
git clone https://github.com/nekto-kotik/sqlantern.git . (клонує в поточну директорію)

Найбільша перевага цієї версії, на мою думку, в простих подальших оновленнях через git pull.

Встановлення повної версії без git

Скачайте zip із повною версією з sqlantern.com або з "Релізів" в цьому репозиторії GitHub, і розпакуйте в обране місці.

Продовження роботи після перерви (робочі сесії)

Якщо браузер скинув (discard) таб, SQLantern автоматично відновлюється, коли Ви до нього повертаєтесь.
Проте, він не може автоматично відновитись після закриття браузеру або після ручного перезавантаження сторінки.
Якщо Вам треба продовжити роботу із того ж місця, збережіть сесію і потім відновіть її (під іконкою Сесій: ).
Інший варіант - не закривати браузер (переводьте пристрій в режим сну або в гібернацію).

SQLantern використовує LocalStorage

SQLantern використовує "LocalStorage", що вимагає включити cookies (щонайменш для доменів із SQLantern).
(Все так - дозволені cookies також включають LocalStorage, не питайте...)
В LocalStorage зберігаються налаштування, робочі сесії, збережені запити і вбудований блокнот.
Якщо LocalStorage недоступний, SQLantern не працює, і помилка при цьому не виводиться.

LocalStorage не дуже захищений

Майте на увазі, що робота із конфіденційними даними на пристроях, що не заслуговують довіри, підвищує ризики витоку цих даних.
SQLantern не слід запускати на пристроях, які Ви ділите із випадковими чи підозрілими людьми, або незнайомцями.

LocalStorage може бути випадково стертий

Очистка історії або даних сайтів може ненавмисно очистити весь LocalStorage в браузері.
Різні браузери застосовують трохи різну логіку: деякі очищують LocalStorage (весь LocalStorage) при очищенні файлів cookie, у інших є окремий прапорець "Очистити дані", і т.і.
Важливо знати, що Ви можете випадково втратити всі дані SQLantern на всіх доменах (налаштування, сесії, збережені запити, блокнот).
Єдиний вихід на поточний момент: не робіть цього, не видаляйте дані сайтів/історію браузеру.

Переклади

SQLantern постачається із двома мовами: українською та англійською.
Знайдуться волонтери перекладачі? :-)

Обмеження Експорту та Імпорту

Експорт/Імпорт зараз доступні лише в MariaDB/MySQL. Підтримка PostgreSQL з'явиться у версії 2.

Відомих мені проблем експорту наразі немає.
Експортовані дані - це стандартний дамп SQL, який можна імпортувати в будь-якій іншій програмі.

З іншого боку, імпорт побудований на компромісах і іноді не спрацьовує без ніяких поважних причин.
Він працює як слід без відомих мені проблем на середніх базах даних (менших за 300М і до 2,000,000 рядків в одній таблиці).
Але він часто не працює на більших наборах даних без видимих підстав.
Щоби тримати код коротким і простим, використовуються такі існуючі функції PHP, які зробили імпорт цілком залежним від об'єму оперативної пам'яті, доступної PHP, і "максимального розміру пакету" бази даних.
Але навіть при роботі цілком в рамках обмежень, при імпортуванні баз даних, більших за середні, трапляються раптові збої.
Я ще не знаю першопричину, але дуже підозрюю, що не зможу її вирішити і одночасно зберегти проєкт компактним.

Коротше кажучи, імпорт або працює добре в певній базі даних, або не працює в ній зовсім.

Мої поради щодо імпорту:

  • Перевірте його в базах даних, із якими збираєтесь ним користуватись
  • Користуйтесь, якщо він працює
  • Не користуйтесь, якщо він не працює (імпорт не почне раптово працювати: якщо він збоїть із якимось дампом, він буде збоїти із ним завжди)
  • В будь-якому випадку тримайте під рукою інші інструменти для імпорту

Я не вважаю це пріоритетною проблемою, бо в SQLantern спочатку взагалі не планувались експорт та імпорт.
Ці функції - бонусний контент, отже користуйтесь, якщо вони у Вас працюють, але якщо ні - мені шкода, але вони ймовірно не будуть виправлені.

Інші відомі проблеми

Експорт та Імпорт таблиць MERGE не підтримується.

Будь ласка, прочитайте також список "Не буде виправлено" нижче, із іншими "Відомими проблемами", які я не вважаю проблемами.

Індивідуальна конфігурація

Багато параметрів можна налаштувати візуально, але вони зберігаються лише у браузері із прив'язкою до домену. Якщо ж Вам потрібні декілька копій із однаковими налаштуваннями, є інший шлях налаштувати SQLantern для серійного розгортання.
Окрім того, існують параметри, яких немає в візуальних налаштуваннях.

Коли нижче вказуються файли php/config.sys.php або js/config.sys.js, Вам треба створити ці файли, або редагувати існуючі (це шляхи відносно директорії із SQLantern).
Тоді Ваша індивідуальна конфігурація залишиться на місці при оновленні (php/config.sys.php та js/config.sys.js не входять в комплект SQLantern, вони індивідуальні за призначенням).
Це також дозволяє легко зробити власний форк із власною конфігурацією, який потім можна розгортати на своїх серверах замість офіційного репозитарію (і отримати однакову індивідуальну конфігурацію в багатьох локаціях, без жодної потреби в поєднанні коду).

Увага: Однофайлова версія не читає файли конфігурації і налаштовується виключно візуально!

Мова за замовчанням

Додайте "config.language = 'uk';" в js/config.sys.js.
Напишіть "en" для англійської мови, "uk" для української. Це єдині дві мови, що зараз доступні в комплекті.

Інші налаштування інтерфейсу

Авто-висота включена за замовчанням, але це можна змінити, додавши "config.default_auto_resize = false;" в js/config.sys.js.

Поле Запит видиме за замовчання, але його можна сховати, натиснувши на надпис Запит.
Воно може бути приховане за замовчанням (в нових панелях), якщо Ви зазвичай не пишете власні запити.
Додайте "config.default_open_query = false;" в js/config.sys.js, щоби це поле було сховане за замовчанням.

Автоматичне фарбування включене за замовчанням: кожна база даних отримує випадковий колір, і усі таблиці, що відкриті з цієї бази даних, успадковують цей колір.
Іншими словами, всі таблиці однієї бази даних автоматично отримують однаковий колір.
Це автоматичне фарбування можна відключити, додавши "config.auto_color = false;" в js/config.sys.js. Тоді новим панелям не буде автоматично призначатись колір.

Можна додати власний CSS на додачу до існуючих стилів, не змінюючи CSS, що йде в комплекті (і потім оновлюватись без потреби в поєднанні коду)!
Для цього додайте "config.styles = '{filename}'" в js/config.sys.js.
Всі шляхи мають бути вказані відносно директорії "css", і назви файлів написані без розширення ".css".
(Іншими словами, приберіть "css/" на початку і ".css" з кінця.)
Наприклад, "config.styles = 'sqlantern/td-400';", щоби підключити CSS-файл, який насправді називається "css/sqlantern/td-400.css".
Можна вказати декілька файлів! Розділювач - пробіл.
Наприклад, "config.styles = 'sqlantern/td-400 my/custom';", щоби підключити два файли: "css/sqlantern/td-400.css" і "css/my/custom.css".

Серверні налаштування

Нижче перелічені лише найважливіші параметри. Повний список із роз'ясненнями дивіться в php/index.php.
Напишіть define("{назваОпції}", {значенняОпції}); в php/config.sys.php, щоби встановити інші значення, аніж за замовчанням.
Наприклад define("SQL_DEFAULT_HOST", "remotehost");, щоб змінити сервер за замовчанням.

SQL_ROWS_PER_PAGE (int) встановлює кількість рядків на сторінці (за замовчанням 30).
УВАГА: В версії 2 цей параметр, скоріш за все, буде переміщений в налаштування інтерфейсу.

SQL_DEFAULT_HOST (string) встановлює сервер (хост) за замовчанням (інакше буде "localhost").
Сервер за замовчанням застосовується, коли хост (або IP) не вказаний в логіні (наприклад, "notroot" - логін без серверу, "notroot@192.168.0.0" - логін із вказаним хостом/сервером).

SQL_DEFAULT_PORT (int) встановлює порт за замовчанням (інакше буде 3306).
Порт за замовчанням застосовується, коли порт не вказаний в логіні (наприклад, "notroot" - логін без порту, "notroot@localhost:33006" - логін із портом).

SQL_DISPLAY_DATABASE_SIZES (boolean) включає та виключає відображення розмірів баз даних в списку баз даних.
Хоча бачити ці розміри зазвичай дуже корисно, надто часто отримання цих даних йде нестерпно довго, тому цей параметр відключений за замовчанням (значення за замовчанням - булево false; встановіть булево true, щоб включити).

SQL_SHORTENED_LENGTH (int) встановлює кількість символів (довжину рядку), до якої обрізаються значення, коли "Повні тексти" знято.
Значення за замовчанням - 200.

SQL_MULTIHOST (boolean) включає і виключає багатосерверні з'єднання. За замовчанням виключено (булево false).
Коли false (стандартно), SQLantern підключається виключно до SQL_DEFAULT_HOST і не дозволяє вказувати інші сервери.
Обережно: Включення цього параметру фактично дозволяє використовувати вашу копію SQLantern для брутфорсу або DDOS-атак на інші сервери.
Будь ласка, захищайте SQLantern додатковими засобами, коли включаєте багатосерверні з'єднання (наприклад, дозволяйте лише доступ з Ваших IP).
Безпека - суто Ваша відповідальність, коли дана опція включена.

Поради та підказки

З'єднання перервалось, поки Ви працювали

Додайте нову панель і з'єднайтесь знову. Після цього можна продовжити працювати в панелях, які були відкриті раніше.

Робота із PostgreSQL

В SQLantern порт визначає, який драйвер бази даних застосувати.
Враховуючи це, якщо Ви користуєтесь стандартним портом 5432, можна вказувати порт в логіні, наприклад: "postgres@localhost:5432", "postgres@example.com:5432", і т.і.

Якщо Ви користуєтесь стандартним портом 5432, і хочете завжди під'єднуватись до PostgreSQL без вказання порту в логіні (з'єднуватись із PostgreSQL за замовчанням), додайте define("SQL_DEFAULT_PORT", 5432); в php/config.sys.php.

Якщо у Вас нестандартні порти, необхідно додати ці порти у схеми порти-драйвери в php/config.sys.php (константа SQL_PORTS_TO_DRIVERS), але оригінальні значення варто також зберегти.
Наприклад:

"SQL_PORTS_TO_DRIVERS" => json_encode([	// `json_encode` для сумісності із PHP 5.6!
  3306 => "php-mysqli.php",
  5432 => "php-pgsql.php",
  55432 => "php-pgsql.php",  // нестандартний порт для PostgreSQL
  55532 => "php-pgsql.php",  // іще один нестандартний порт для PostgreSQL
]),

Якщо у Вас нестандартні порти, А ТАКОЖ Ви хочете під'єднуватись до PostgreSQL без порту в логіні (з'єднуватись із PostgreSQL за замовчанням, із нестандартним портом), додайте SQL_PORTS_TO_DRIVERS РАЗОМ ІЗ SQL_DEFAULT_PORT в php/config.sys.php.

Якщо база даних "postgres" не працює як база для з'єднання, додайте define("SQL_POSTGRES_CONNECTION_DATABASE", "nonpostgres"); в php/config.sys.php (Ви маєте самі знати, яке значення працює в Вашому випадку, я не можу нічого порадити, це індивідуально).

Жодне налаштування з цього розділу не працює в однофайловому SQLantern, він не читає файли конфігурації і з'єднується лише за стандартними портами (через 3306 із MariaDB/MySQL, через 5432 із PostgreSQL).
(Або Ви можете змінити програмний код своєї копії однофайлового SQLantern, якщо знаєте, як.)

Не буде виправлено

Запуск багатьох запитів в одному полі Запит не підтримується і не планується.
Спроба запустити багато запитів (через ";", що цілком припустимо напряму в консолі або, скажімо, в phpMyAdmin) повертає помилку.

Немає ніяких функції редагування даних. І я не думаю, що ми хоч коли-небудь їх зробимо.
Знов-таки, SQLantern спроєктований не як заміна або імітація phpMyAdmin чи інших потужних менеджерів даних - він зроблений, щоби доповнити їх.

Списки баз даних серверу і списки таблиць бази даних не розбиваються на сторінки.
Тобто, якщо логін має доступ до 1000+ баз даних або таблиць, всі вони будуть виведені в одному великому списку, без пагінації.

Немає і не буде ніякого групування чи деревоподібного виведення баз даних чи таблиць бази даних.

При запитах з великих таблиць із великим LIMIT, на сервері або в браузері може закінчитись оперативна пам'ять (або сервер може вилетіти в таймаут).
SQLantern не розбиває на сторінки результати, якщо запит містить LIMIT. Я вважаю, що якщо Ви написали LIMIT/LIMIT ... OFFSET, то Вам так треба, і це Ваша відповідальність.
(Але результати запитів без LIMIT розбиваються на сторінки.)

Авто-закінчень (авто-підказок) під час друку немає і вони не плануються, бо я їх ненавиджу і повсюди їх виключаю (де це можливо).

Обережно, вільна ліцензія

Цей проєкт опублікований під "вірусною" ліцензією, яку багато хто вважає досить хардкорною, зверніть на це увагу.
Якщо Ви використовуєте SQLantern лише для себе із БУДЬ-ЯКОЮ метою, без зміни програмного коду та/або розповсюдження, Вас це ніяк не стосується.

Дорожня карта

Прийнятний повний посібник буде опублікований десь до версії 2.

Версія 2, сподіваюсь, буде опублікована в 2 кварталі 2024, і матиме наступні доробки:

  • Підтримка Views в MariaDB/MySQL (реалізовано в версії 1.9.2)
  • Створення резервної копії всього LocalStorage (налаштування, сесії, збережені запити, блокнот) на сервер, або у клієнта
    (проти випадкового стирання користувачем)
  • Експорт та імпорт в PostgreSQL
  • Драйвер MS SQL (PHP)
  • Скачування "бінарних" даних
  • Кількість рядків на сторінці стане індивідуальним випадаючим списком (своїм у кожній панелі)
  • Більше налаштувань можна буде змінювати візуально (кількість рядків на сторінці, формат чисел, порт за замовчанням, і не тільки)

Версія 3, надіюсь, буде опублікована десь в 4 кварталі 2024, із наступними доробками:

  • Обмін сесіями
    • Можливість через одне посилання поділитись всім своїм робочим середовищем.
    • Це звучить небезпечно і існують ризики, але ідея вже добре продумана і функція буде настільки безпечною, наскільки це можливо.

Поза версією 3...
Інших детальних планів немає.
Але подальші (дуже низькоприоритетні) бажані функції приблизно такі (у випадковому порядку):

  • Повністю робоча мобільна версія
  • Відновлення видалених панелей/екранів (історія панелей)
  • Довільна ширина панелей зі зміною вручну
  • Підтримка мов із написанням справа наліво (RTL)
  • Більше драйверів баз даних
  • Додаткове горизонтальне розбиття для екранів 4К і більшої роздільної здатності (два екрани в одному, можливо чотири екрани)
  • Автоматичне продовження/перестворення сесій PHP
    • Не впевнений, що це хороша ідея, у неї є серйозні мінуси
  • Серверна частина на інших мовах програмування
  • Повністю переносна десктопна версія (все ще у браузері, але без потреби в сервері)

Авторські права

SQLantern, код PHP:
(C) 2022, 2023, 2024 Михайло Графський aka nekto

SQLantern, код JS, HTML, CSS:
(C) 2022, 2023, 2024 Світлана Мілітовська

Simplebar:
Зроблений Adrien Denat з форку Jonathan Nicol
https://github.com/Grsmto/simplebar