Adminer 4.7.6
Školení, která pořádám
Adminer 4.7.6 zrychluje formulář pro změnu struktury tabulky, který se zpomalil přidáním CSP ve verzi 4.4.0. Důvodem tehdy bylo nahrazení inline event handlerů za značky <script>
v každém řádku formuláře, což obzvlášť Chrome značně zpomaluje. Vyřešil jsem to centralizací těchto značek. Tady si postesknu nad nemožností se striktním CSP používat inline event handlery. Ty sice vedou ke špagetovému kódu, ale na druhou stranu umožňují vytvářet komponenty, které mají HTML kód i navázání jeho událostí na jednom místě. Rozdělení těchto dvou věcí vede k větší složitosti – komponenta např. může vracet zvlášť HTML a zvlášť kód pro obsluhu událostí, což pak zase musí její uživatel nalepit na různá místa. Jiným řešením může být jakýsi vlastní DSL využívající data-
atributy, což taky někde používám.
Další změny:
- Ve změně struktury tabulky se dá kliknout i kousek vedle vstupních políček. To jsem rozbil ve verzi 4.6.2 (při zrychlování formuláře opět kvůli CSP).
- Při spouštění uložené procedury se nově zobrazuje čas jejího spuštění podobně jako u jiných SQL příkazů.
- Verze 4.4.0 zakázala připojování k privilegovaným portům (< 1024). K těm se dá ale připojit i přetečením čísla portu. Adminer proto nově zakazuje připojení i k portům > 65535.
- MySQL: Export nyní vždy nastavuje
foreign_key_checks
. Ten se dřív nastavoval jen při exportu dat, ale může být potřeba i pře exportu samotné struktury.
- PostgreSQL: Přidal jsem podporu exportu pohledů.
- V Adminer Editoru jsem opravil focusování vyhledávacího políčka při kliknutí na
=
v záhlaví tabulky.
Uživatelé také opravili plugin login-ip a přidal jsem ukázku použití Adminer Editoru s SQLite (kombinuje plugin login-password-less se změnou použitého ovladače v přihlašovacím formuláři a nastavením cesty k databázi).
Diskuse
smrdící epidemie:
Díky za každou novou verzi, Jakube.
Dotaz: dává ti smysl (u MySQL/MariaDB) zobrazovat collation (buď všech řetězcových sloupců; default celé tabulky) i na stránce "Zobrazit strukturu"?
Šlo by tam tu informaci nějak dodat?
Jakub Vrána :
Moc využití pro to nevidím. Collation mám obvykle stejné v celé databázi a pokud ne, tak mi to ve změně tabulky stačí. Možná by na to šel udělat plugin, ale možná by nejdřív potřeboval přidat nějaké hooky.
smrdící epidemie:
Díky za každou novou verzi, Jakube.
Drobný detail na vylepšení: ve formuláříku "Import" (pod výpisem tabulky) by šlo do vstupního pole <input type="file"> připsat atribut "required". Sám prohlížeč by pak vyžadoval vložení souboru. (Ano, je to detail a často se to nestává, ale přece... a moc práce to nezabere.)
Jakub Vrána :
Bohužel je to jeden společný formulář s importem ze souboru na serveru, takže to povinné pole není.
Formulář by se dal rozdělit, ale to se mi nechce dělat.
smrdící epidemie:
Zdravíčko. Zobrazuje se teď také někomu v Admineru odkaz na verzi 4.7.8 s tím, že na adminer.org je aktuálně verze 4.7.7?
smrdící epidemie:
Nyní je to aktuálně v pořádku (tedy 4.7.7 bez odkazu).
smrdící epidemie:
Ahoj, Jakube.
Je nějaká možnost nechat exportovat tabulku po částech, například po každých 50000 řádcích? Je možné někde si zvolit limit a offset pro takový export?
Tahle možnost by se mně (a určitě občas i ostatním uživatelům) velmi hodila - řádově desetitisíce až statisíce záznamů je množství vhodné pro import/export na pomalých serverech (nebo do phpMyAdminu, který na velké soubory občas odpovídá 504kou), ale příliš velké na zobrazení a označení v prohlížeči.
Jakub Vrána :
Ze SQL příkazu to jde exportovat jako CSV. Do příkazu se dá LIMIT 50000 a pod příkazem se dá Limit rows: 10 (takže se nemusí vypisovat všechny).
Z výpisu tabulky to jde exportovat i jako SQL, ale musí se všechny vypsat. Pak jdou označit jedním kliknutím na checkbox v záhlaví tabulky.
smrdící epidemie:
Díky a ještě se zeptám (pro zmiňovaný případ, že chci exportovat tabulku po oněch 50 tisících řádků), existuje v Admineru možnost nastavit si ve výpisu offset na 50000, 100000, 150000, ... - něco jednoduššího než listování po stránkách a zadávání podmínek ve výpisu typu "id > 50000" (které nemusejí fungovat pro promazanou tabulku) atd.?
Diskuse je zrušena z důvodu spamu.