Nejste přihlášeni
Stránky 1
Zdravím, je možné, že se při aktualizaci serverů na PHP 5.4 nějak rozbila podpora SQLite3 databází? Přijde mi, že to v poslední době nefunguje správně, především při práci s cizími klíči. Failuje mi kvůli tomu jedna nová aplikace, jinou aplikaci jsem kvůli tomu musel přemigrovat na MySQL, protože jsem to nedokázal vyřešit a potřeboval jsem jí rychle rozběhnout.
Příklad:
Framework, který používám při tvorbě webů, používá pro získání informací o cizích klíčích příkaz PRAGMA foreign_key_list(TABLE_NAME);
Na lokálu mi vrací tento dotaz následující tabulku:
id | seq | table | from | to | on_update | on_delete | match
---+-----+----------+-------------+----+-----------+-----------+------
0 | 0 | photo | photo_id | id | NO ACTION | NO ACTION | NONE
1 | 0 | category | category_id | id | NO ACTION | NO ACTION | NONE
Pokud ale stejný příkaz na stejné databázi spustím na serveru, dostanu následující výsledek:
id | seq | table | from | to
---+-----+------------+-------------+----
0 | 0 | "photo" | photo_id | id
1 | 0 | "category" | category_id | id
Tj. chybí tam sloupce on_update, on_delete a match, navíc jsou názvy tabulek ve sloupci table uzavřeny v uvozovkách. Právě na neexistenci sloupců on_update a on_delete mi padá aplikace.
Je to nějaká chyba v SQLite, nebo je to správné chování?
PS. Nevěděl jsem do které kategorie tento topic zařadit, nepřišlo mi vhodné zařadit to do "Problémy s MySQL", případně prosím moderátory/adminy, aby to v případě potřeby přesunuli do jiné vhodnější kategorie. Dík.
PS2. účet j******a, problém na všech doménách, které mám přiřazené k účtu.
Upravil jp007 (2013-06-03 07:49:25)
Offline
Nikdo nic?
Offline
Taky ještě SQLite křičí, pokud jako operaci pro cizí klíč (pro ON DELETE a ON UPDATE) uvedu NO ACTION. Na lokálu mi to funguje, na Endoře mi SQLite umře na syntax error, protože prý NO ACTION nezná.
Nevěděl by někdo co s tím?
Upravil jp007 (2013-05-24 11:17:26)
Offline
Ak nikto neodpovedá, tak zrejme nikto s týmto nemá skúsenosť, prípadne s tým nepracuje. To samé je i z mojej strany, s SQLite som nikdy nepracoval a netuším ako funguje.
Offline
Možná bude problém v zastaralé verzi SQLite3.
Má verze na localhostu: 3.7.9
Verze na Endoře na serveru 2 ("zajicek"): 3.3.6 (na tomto serveru mám účet)
Pro zajímavost verze na ostatních serverech Endory:
Verze na Endoře na serveru 1: 3.3.6
Verze na Endoře na serveru 3: 3.3.6
Verze na Endoře na serveru 4: 3.3.6
Verze na Endoře na serveru 5: 3.6.20
Verze na Endoře na serveru 6: 3.6.20
Verze na Endoře na serveru 7: 3.6.20
Verze na Endoře na serveru 8: 3.6.20
Verze 3.3.6 byla vydána dne 2006-06-06, verze 3.6.20 dne 2009-11-04 a moje verze dne 2011-11-01.
Když kouknu na přehled změn u SQLite (http://www.sqlite.org/changes.html) tak až u verze 3.6.19 (vydána 2009-10-14) je poznamenáno "Added support for foreign key constraints. Foreign key constraints are disabled by default. Use the foreign_keys pragma to turn them on."
Nešlo by to SQLite na serverech Endory zaktualizovat (alespoň na serverech 1-4)? Nevidím smysl mít na serverech 7 let starou verzi SQLite.
Upravil jp007 (2013-09-28 12:51:04)
Offline
Stránky 1