Adminer 3.6.0
Školení, která pořádám
Adminer 3.6.0 přináší jednu hlavní novinku a několik drobných vylepšení. Hlavní novinkou je odkaz pro nahrání další stránky ve výpisu dat, který plní tyto funkce:
- Několik lidí mne žádalo, abych odkaz pro přechod na další stránku zvýraznil. Dokonce na to vznikl i pull request.
- Data se nahrávají AJAXem, takže je to o něco rychlejší. Jednu dobu se skoro všechny odkazy nahrávaly AJAXem, tohle se ale liší tím, že se přenáší skutečně jen další řádky a třeba celkový počet záznamů se znovu vůbec nepočítá.
- Po nahrání dat se stránka neposune, takže člověk neztratí kontext.
Další vylepšení jsou drobnější:
- Pokud sloupec typu
varchar
obsahoval konec řádku, tak se při editaci odstranil. Nově to funguje tak, že se v tomto případě použije <textarea>
. Pokud ji chcete použít i při vytváření nových dat, lze použít rozšíření edit-textarea.
- Při načítání seznamu databází a počítání celkového počtu záznamů v tabulce se zabíjí pomalé dotazy.
- Export odjakživa používal tzv. extended insert, kdy se v rámci jednoho dotazu vkládá více řádek najednou. To se nedělalo při INSERT+UPDATE exportu, protože v klauzuli
ON DUPLICATE KEY UPDATE
se vkládané hodnoty opakovaly. Nově se to nedělá, protože jsem objevil funkci VALUES()
.
- Tlačítko pro odhlášení (které není odkazem kvůli obraně před CSRF) je nově nastylované jako odkaz, takže tolik neruší.
- Databáze uvedená v přihlašovacím formuláři se nyní ukládá do trvalého přihlášení. To je logické chování tohoto políčka doplněného ve verzi 3.4.0.
- Změna jazyka se nově provádí metodou POST kvůli ochraně proti CSRF.
- Ctrl+kliknutí a Shift+kliknutí otevře formulář do nového okna. To funguje automaticky v Chrome, ale ve Firefoxu ne. Tato funkce už v Admineru byla, ale zmizela při odstraňování AJAXu.
- Do MySQL jsem přidal podporu pro geometrii. Před pěti lety jsem si řekl, že ji přidám, jakmile ji budu sám potřebovat, případně se někdo s tímto požadavkem ozve.
- Pro přizpůsobení jsem přidal metodu
selectQueryBuild
, která umožňuje ovlivnit, jaký dotaz se provede při výpisu dat.
- Přibyl srbský překlad.
Další změna, ke které jsem se odhodlával několik let, je komprese překladů, CSS a JavaScriptu. Většina uživatelů to sice za důležité nepovažuje, ale pokusil jsem se to implementovat tak, aby to nezdržovalo a nikoho neomezovalo. Některá rozhodnutí při vývoji dělám s ohledem na velikost (pokud jsou dvě verze kódu stejně výkonné a obdobně čitelné, použiji tu kratší) a tady by mělo zůstat ležet na stole 100 kB bez povšimnutí? Zkompilovaný soubor můžu otevřít ve SciTE s mým nastavením a uložit ho bez poškození. Kompresi provádím algoritmem LZW.
Spolu s tím jsem také posílil kešování statických souborů. Již dříve se posílaly s „nekonečnou“ platností (hlavička Expires
). Nově se přikládá i hlavička Last-Modified
, takže v případě běžného obnovení stránky (např. klávesou F5) prohlížeč pošle hlavičku If-Modified-Since
a Adminer jen vrátí stavový kód 304 Not Modified
.
Diskuse
juneau:
Zdravím, přimlouval bych se i za jednu drobnost, nebo alespoň radu, jak řešit rozšíření: používám Adminer na mnoha webech, kdy mám od hostingu tradičně k dispozici jen jednu (MySQL) databázi. Tedy ke každé databázi unikátní přihlašovací údaje. Když se přihlásím, mám na výběr dvě databáze, information_schema a hlavní databázi.
Líbilo by se mi, kdyby za této situace Adminer tuto hlavní databázi rovnou vybral a já s ní mohl hned pracovat. Na webech s více databázemi pak opět vypsání úvodního seznamu. Je možné to nějak přes rozšíření řešit? (možnost přihlašovat se do databáze rovnou mi moc nepomáhá, spousta webů, spousta různých jmen databází, nepamatuji si je)
LT:
Zdravím. Neviem či som jediný komu nová verzia admineru robí problémy (na jednom velkom sk-cz hostingu)? Pri všetkých weboch mi adminer vypíše len zopár otáznikov: "??????"
Testované na viacerých doménach s rôznymi nastaveniami, rôzne verzie admineru (3.6.0 len mysql, len mysql sk, všetky jazyky...). Staršie verzie som používal bez problémov.
Vďaka za pomoc.
msx:
Osobne mám skúsenosti s virtuálnym serverom vo WebSupporte a Adminer tam funguje bez problémov. S active.cz/sk skúsenosť nemám.
Jakub Vrána :
Pokud Adminer kopírujete pomocí FTP, tak použijte binární režim. Pokud to nepomůže, tak bych potřeboval postup, jak to reprodukovat.
msx:
Tá novo objavená funkcia values(), to je akože vtip a myslí sa tým toto alebo niečo inšie:
insert into tabulka (stlpec1, stlpec2) values (hodnota1, hodnota2)
Ja osobne na vkladanie používam:
insert into tabulka set stlpce1=hodnota1, stlpec2=hodnota2, kvôli jednoduchej zameniteľnosti pre update (vytváram len jednu kostru hodnôt, ale to som asi odbočil. Spomenul som to preto, lebo niekde na tomto blogu sa hovorí o jednoduchom vkladaní hodnôť a tento spôsob tam chýba a spomenutá funkcia VALUES() mi to pripomenula (v prvej chvíli som myslel, že používal spôsob ako ja.
A ešte otázka, čo je podpora pre geometriu?
fos4:
Myšleno to je u ON DUPLICATE KEY:
INSERT INTO `table` SET sloupec1 = 'hrozne dlouha hodnota'
ON DUPLICATE KEY UPDATE UPDATE
sloupec1 = VALUES(sloupec1) ## neopakuje se 'hrozne dlouha hodnota'
msx:
Aha, to je tiež pre mňa nová vec.
msx:
Mohol som to do jedného príspevku:
Chcel by som spraviť mimo Adminera script, ktorý mi aktualizuje verziu na novšiu na url, kde bude vystavený (samozrejme o scripte budem vedieť len ja). Chcem sa spýtať na tieto veci:
1. Na akej url je uložená verzia Adminera? Niekde som to tuším nedávno čítal, ale nie som si istý, či to nebolo pre úplne iný program a teda by som zbytočne hľadal, ak sa to Adminera netýkalo.
2. Existuje nejaká stabilná adresa na stiahnutie Adminera pre použitie toho scriptu?
LT:
www.adminer.org/latest[-mysql][-sk].php
msx:
Myslel som funkčné url. ;-) Nič v zlom, ber ma s rezervou.
LT:
Stačí si url poskladať podla požiadaviek:
www.adminer.org/latest-mysql-sk.php stiahne mysql sk verziu,
www.adminer.org/latest-mysql.php stiahne mysql so všetkymi jazykmi a podobne...
msx:
Aha, prepáč, neuvedomil som si, že to je "interaktívny" link. Ospravedlňujem sa.
Jakub Vrána :
Odkazy jsem zneaktivnil, aby mi tam nechodili roboti. Patří před ně http://.
Petrrr:
Skoda, ze jiz podruhe je nejakej update tykajici se vzhledu, ale skin upravenej neni :/
BTW: pouzivam styl od Miroslava Pokorneho (timto mu dekuji za nejhezci styl)
Jakub Vrána :
Díky za upozornění. Opravil jsem tlačítko pro odhlášení. Nefunguje ještě něco dalšího?
Petrrr:
Diky za opravu, nyni to vypada, ze je vse ok.
msx:
Ako určím, že do ktorej databázy chcem urobiť alter export? Mám povedzme databázu, v druhej databáze (totožnej) urobím zmeny a teraz tieto zmeny chcem cez alter export preniesť do prvej. Na adminer.cz je nejaké video, ale tam nie je vysvetlené ako určím hlavnú databázu.
Jakub Vrána :
Exportuje se z momentálně vybrané databáze. Importuje se do momentálně vybrané databáze.
msx:
Aha, takže som sa mal opýtať inak. Jednu databázu vyberiem a do druhej chcem alter export, ako ju mám vybrať alebo určiť, že sa jedná o ňu?
msx:
Už druhýkrát sa mi vo Firefoxe stalo za 24 hodín, že kliknem na MySQL, aby som zmenil prihlásenie z jednej databázy na druhú (každá databáza je prístupná po inými prihlasovacími údajmi a prihlasovacie údaje nie sú. Sú proste vymazané. Po zadaní akýchkoľvek údajov mi naskočí lenn prázdna stránka (Adminer 3.5 to nerobil nikdy). Vôbec ma teda neprihlási a ani nenapíše informáciu o nesprávnych prihlasovacích údajoch. Nepomáha ani vymazanie kompletnej histórie za poslednú hodinu, vymazanie cookies Adminera a ani reštart prehliadača. Pomáha len zmena prehliadača za iný. Na druhý deň už všetko zázračne funguje (teda aspoň prvýkrát to tak dopadlo, neviem ako to dopadne teraz). Používam plnú verziu Adminera bez rozšírení (tie zatiaľ ani neplánujem v budúcnosti používať). Netuším aké údaje mám ešte poskytnúť, takže v prípade otázok rád zodpoviem.
msx:
Poprosil by som pozrieť sa na to, pretože mi to komplikuje prácu s Adminerom.
msx:
Opäť urgujem. Stalo sa mi to znova. Našťastie v druhom tabe som mal otvorenú túto url:
https://stranka.sk/adminer/?username=meno2&…&table=tabulkaOtvoril som teda prázdnu záložku a dal som tam tú istú adresu, len som zmenil prihlasovacie meno a databazu:
https://stranka.sk/adminer/?username=meno1&…&table=tabulkaNašťastie to pomohlo a Adminer pracuje. Ak ale teraz kliknem na MySQL hore v okne, aby som sa dostal na úvodnú stránku Adminera, tak prihlasovacie údaje z ľavého panela už budú vymazané. Na serveri ale zrejme ostali, keďže cez url to funguje. Môžeš sa na to pozrieť, prečo to robí?
msx:
Zaujímavé je, že som nechal vo Firefoxe otvorené záložky s Adminerom, pre obidve databázy a dnes po kliknutí na odkaz "MySQL" mi vyskočila prihlasovacia obrazovka a naľavo už krásne svietia prihlasovacie údaje. Ja som ich určite nezadal. Nechápem tomu. Vyzerá to tak, že Adminer ich občas zabúda. Takže jediným riešením je nezatvárať záložky, kým bude oprava.
Jakub Vrána :
Zkuste smazat všechny cookies, třeba se to tím vyřeší.
Jeník:
Adminer je super! Včera jsem seděl u kolegy a on používal phpmyadmina. To je hrůza nechápu jak ten strašný software může někdo používat, ale přejít nechce, prý je zvyklý. No to je jeho problém. Já moc děkuju za Adminera. Bez něho bych už nechtěl pracovat.
msx:
Ja som tiež niekomu nedávno ukázal Adminera, tak som zvedavý ako to dopadne časom.
msx:
Nedalo by sa vypnúť to cachovanie? Príspevok od Jeníka sa mi zobrazil až po odoslaní môjho.
msx:
Mal by som prosbu. Pri numerických políčkach by mohol Adminer brať do úvahy aj desatinnú čiarku. Bolo by to vhodné hlavne pre štáty, kde je desatinná čiarka štandard. Som zvyknutý všade zadávať desatinnú čiarku (numerická klávesnica) a keď programujem nejaké aplikácie, tiež ich robím tak, aby ju podporovali. Adminer by ju tiež mohol podporovať. Vopred ďakujem.
Jakub Vrána :
Dá by se to udělat pomocí přizpůsobení metodami selectVal() a editVal(). V Adminer Editoru by to stálo za zvážení, v Admineru to jako výchozí chování určitě dávat nebudu.
trestná smradlavice:
Poslední recenze zrovna nechválí to, že v PostgreSQL verzi 9.2 nefungoval výpis procesů.
Místo příkazu...
SELECT * FROM pg_stat_activity ORDER BY procpid;
...má od verze 9.2 zřejmě být:
SELECT * FROM pg_stat_activity ORDER BY pid;
msx:
Mám prosbu. Pri zozname tabuliek pri hromadnom mazaní treba zaškrtnúť checkbox, ktorý naraz označí všetky tabuľky. Tento checkbox je hore a ja vždy, keď chcem označiť všetky, tak najprv zídem dole, potom si uvedomím, že chckbox je hore a potom sa vrátim späť hore, zaškrtnem ho a opäť idem dole klepnúť na Odstrániť. Nedalo by sa presunúť to zaškrtávacie políčko dole? Aj tlačítka na Odstránenie, Vyprázdnenie ap. sú dole, takže by to bolo vhodnejšie.
Jakub Vrána :
Chci, aby to bylo konzistentní, a ve většině tabulek spodní řádek není, takže by to nebylo kam dát. Navíc preferuji mít jednu funkci jen na jednom místě, nevznikají pak pochybnosti, jestli to dělá přesně to samé.
msx:
A ešte jednu prosbu mám. Stránkovanie pri prezeraní tabuľky by mohlo byť aj hore. Takto musím skrolovať stále dole.
Jakub Vrána :
Nahoře ještě není známý celkový počet záznamů, jehož zjištění může trvat dlouho. Co takhle použít nějakou klávesovou zkratku?
trestná smradlavice:
nešlo by na začátku dát <div id="top-pages"></div>
a po vypsání dolního stránkování spustit
<script>
document.getElementById("top-pages").innerHTML=document.getElementById("pages").innerHTML;
</script>
?
trestná smradlavice:
Drobnost: v historii se u příkazů vypisuje čas. To kvituji pozitivně, ale historie může být týdny i měsíce stará. Nešlo by dát do bubliny datum? Díky
Michal:
Ve výpisu dat tabulky se při vyhledávání jednotlivé podmínky spojují pomocí AND. Je nějaká možnost podmínky OR než upravení SQL ?
trestná smradlavice:
Dotaz:
SELECT * FROM tabulka WHERE a=1 AND b=2 AND c=3 OR d=4;
není
SELECT * FROM tabulka WHERE a=1 AND b=2 AND (c=3 OR d=4);
ale
SELECT * FROM tabulka WHERE (a=1 AND b=2 AND c=3) OR (d=4);
Ano, sice to je věc konvence (a to nejen v SQL ale obecně řečeno v matematické logice jako takové), přesto si myslím, že většina uživatelů by při zadávání chtěla dostat výsledek druhého dotazu a divila by se, že dostává výsledek dotazu třetího.
Pokud bys chtěl mít možnost volit si AND a OR libovolně, musela by nejspíš před a za každý podmínkový řádek přibýt možnost dát tam začátek/konec závorky.
Místo OR můžeš pro výčet hodnot použít operátor IN a pro interval > a <.
Jakub Vrána :
Dá se to obejít tak, že se jako operátor vybere nic (na posledním místě) a tam se napíše zbytek podmínky za názvem sloupce. Nic moc, ale vzhledem k tomu, že se OR moc nepoužívá, tak se s tím nic dělat nechystám.
trestná smradlavice:
...protože podle mého nicku by to nebylo moc reprezentativní :-)
Popřípadě můžu udělat i to samé v jiné barvě, jestli si někdo řekne.
Michal:
Raději bez stylu než tento :-) Ne bez urážky, není to k přečtení.
Diskuse je zrušena z důvodu spamu.