tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

podpora SQLite3?

před 10 lety

oktam
Člen | 25

Dobry den,
podporuje dibi aj SQLite3?

před 10 lety

romansklenar
Člen | 657

Na SQLite3 v dibi zatím jedině přes driver pdo (vyzkoušeno).

Jelikož je SQLite3 nativně zatím jen v PHP 5.3 a to reprezentován třídou, tak pohledem do zdrojáků zjistíte, že driver sqlite s trojkou nepůjde.

Napsat driver na trojku by ale neměl být žádný problém, je to otázka jednoho večera.

před 10 lety

David Grudl
Nette Core | 6806

SQLite3 driver už je součástí distribuce, včetně minified verze.

před 10 lety

romansklenar
Člen | 657

Davide dívej se častěji na Fork Queue :) https://github.com/…/sqlite3.php
Dva týdny to denně používám a zdá se to být stabilní. Je tam i reflexe na databázi. Až na pár detailů to máme skoro shodné (viz diff), tak se na to mrkni. Například tento řádek je důležitý.

PS: psal jsem to i jako comment ke commitu na githubu, ale nějak se to tam nezobrazuje

před 10 lety

David Grudl
Nette Core | 6806

No neva :-) Já ho u sebe suším už od července a teprve teď na základě požadavku ho šoupl do distribuce. Tvoje vychytávky jsem přidal. Proč je ten řádek důležitý? Ono se to samo nedestruuje?

před 10 lety

22
Člen | 1484

Nevím, kde je problem, ale SQLite3 mi normalne chodi viz: http://test.czskcup.info/…/sqlite3.php
ale dibi se ne a ne pripojit Nette\Debug → throw new DibiDriverException(„PHP extension ‚sqlite‘ is not loaded.“)
což ale není pravda…
http://test.czskcup.info/

můžete na to někdo mrknout, co je špatně??

Editoval 22 (23. 1. 2010 2:36)

před 10 lety

22
Člen | 1484

tak zdá se, že problém vyřešen po upgrade na Nette 0.9.3 + dibi layer ze stejné distribuce..

Editoval 22 (23. 1. 2010 4:05)

před 10 lety

romansklenar
Člen | 657

David Grudl napsal(a):

No neva :-) Já ho u sebe suším už od července a teprve teď na základě požadavku ho šoupl do distribuce. Tvoje vychytávky jsem přidal. Proč je ten řádek důležitý? Ono se to samo nedestruuje?

Asi byla špatná karma když jsem to psal, protože v určitých situacích to nejelo, pokud tam ten řádek nebyl (to byly ale metody fetch a query jinak implementované). Teď to ale funguje správně i bez něj, omlouvám se za zmatky.

Editoval romansklenar (28. 1. 2010 9:57)

před 9 lety

Cifro
Člen | 245

Napišem to do tohoto vlakna…

V kóde so SQLite3 driverom, mi pri tomto zapise

$tableInfo->getPrimaryKey()->getColumns()

vyhadzuje vynimku Call to a member function getColumns() on a non-object. Zdá sa že PK v SQLite3 nie je automaticky index (getPrimaryKey() vracia NULL). Keď vytvorím aj index nad PK, vynimka sa už nevyhadzuje. Ale je otravné vytvarať index, tam kde ho nepotrebujem.

Edit: Aha tak preto:

The PRIMARY KEY attribute normally creates a UNIQUE index on the column or columns that are specified as
the PRIMARY KEY. The only exception to this behavior is special INTEGER PRIMARY KEY column

Ja som mal práve ako integer ten PK.

Možno by nebolo zlé keby toto sqlite3 dibi driver vedel ošetriť (http://www.sqlite.org/…tetable.html#…)

Editoval Cifro (7. 6. 2010 23:01)

před 9 lety

David Grudl
Nette Core | 6806

Melo by to fungovat.

před 9 lety

Cifro
Člen | 245

To som si všimol, Vrtakovi v jeho ActiveMapper deme to šlo. Ja som musel vytvarať ručne unique indexy. Možno chyba v Navicate.

před 9 lety

David Grudl
Nette Core | 6806

Přesněji řečeno: od nynějška by to mělo fungovat, v poslední revizi.

před 9 lety

pjoter
Člen | 119

Taky mám dotaz ohledně Sqlite3. Asi se to ani moc netýká dibi i když ho používám. Při UPDATE dotazu mi to vždy vráti database is locked. Při hledání na googlu jsem narazil na dvě příčiny. První je že db už používá někdo jiný. To však vylučuje to že mě UPDATE v minulosti šel. Druhá možnost že db spadla při některém ze zapisovacích skriptů a db zůstala v módu locked. Nevěděl by někdo jak to unlocknout?