Oznámení
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?