Difference between revisions of "Kexi/KexiDB"

 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''This page will be moved to [[Predicate]] when Kexi moves to Predicate.'''
+
In Kexi 2.x, ''CalligraDB'' is a database connectivity and creation library. Its origins are in Kexi 1.x so it is internally called ''KexiDB''.
  
*[[/KexiDB Drivers/]]
+
'''This page will be moved to [[KDb]] after the release of Kexi 3 which is based on KDb.'''
 +
 
 +
*[[/libCalligraDB/]] - KexiDB has been moved to shared calligra/libs/db/ in version 2.6
 +
*[[/KexiDB Drivers/|Drivers]]
 
*[[/User data/]]
 
*[[/User data/]]
 +
  
 
See also http://kexi-project.org/wiki/wikiview/[email protected]
 
See also http://kexi-project.org/wiki/wikiview/[email protected]
 
==libCalligraDB==
 
The Task: Move core parts of KexiDB lib from kexi/kexidb to calligra/libs/db (libcalligradb) for reuse by Word's Biblio module and possibly other places in Calligra.
 
 
'''Status:''' in master (2.6) since 2012-07-11
 
 
'''Detailed changes:'''
 
* GUI- or Kexi-related bits such as validators are still in Kexi
 
* Only the SQLite3 driver is moved to libcalligradb, others stay within Kexi
 
** thus, calligra libs depend on the driver, i.e. depend on SQLite3 (this was the case already for Words and Kexi)
 
** calligra libs depend on ICU as well for proper unicode handling (which is dependency of Qt 5 anyway)
 
* Predicate library, as a Qt-only component, will replace functionality of the calligradb lib
 
* sqlitedump tool used for database for interactive database compacting stays in Kexi; if needed could be moved to libs/ too
 
* a few functions from libkexiutils moved to libcalligradb, so libkexiutils is not dependency
 
* for simplicity/API stability, namespace stays as KexiDB
 
* README.PACKAGERS file updated
 
 
'''Plans:'''
 
*port the biblio db storage from plain QtSQL to libcaligradb (smitpatel)
 
**with support from jstaniek
 
**target version: 2.6
 
*port the biblio db storage to libPredicate (by who?)
 
**with support from jstaniek
 
**target version: 3.0
 
 
===Minutes from IRC meeting===
 
*2012-07-03
 
*requested by jstaniek
 
*attended by boemann, jstaniek, smitpatel
 
 
*idea: storage for bibliography could re-use libKexiDB instead of libQtSQL
 
*pros:
 
**simplify the code
 
**increase code re-use - KexiDB is developed 8+ years already with reuse in mind
 
**make the database ($HOME/.calligra/biblio.sqlite) accesible to Kexi, so biblio db can be added to the 'Kexi Scientific' family of templates for data re-use and manipulation
 
**KexiDB has database and table creation API, hides SQL complexity, QtSQL does not (what may result in code complexity in Words)
 
*cons and questions:
 
**size of libKexiDB as dependency (Biblio already uses SQLite3, which is the biggest dependency compared to either QtSQL or KexiDB anyway)
 
**we're moving to predicate in Kexi (but that would happen no earlier than in 3.0, realistically in 3.1 or 3.2), so KexiDB is here for the transition period
 
**are the APIs stable? (yes, most changes happen in Predicate, moreover KexiDB is Calligra's internal API, so will be updated with the apps and the Biblio code)
 
**Words cannot depend on Kexi (it wouldn't, relevant parts of KexiDB should be moved to calligra/libs/)
 
 
*extra points, from Kexi's perspective
 
**According to plans, Kexi will have biblio-feature db in 3.x anyway as a template, which ideally would depend on Words too. With kexidb reuse we would avoid incompatible two databases, avoid extra work, and avoid two Biblio products.
 
**For now Kexi lacks templates that are real world and integrated with other Calligra apps. The Biblio initiative helps here.
 
 
*current state: smitpatel delivered QtSQL-based code for Biblio (within GSoC 2012), jstaniek thinks it has bits (db and table creation) already handled in KexiDB
 
 
*'''final agreement has been reached: KexiDB adoption in Biblio'''
 
**smitpatel already studied kexi/tests/newapi sample code and claims it looks pretty straight forward for use in Biblio
 
**Biblio can be still kept small enough after using with KexiDB, in fact codebase size of Biblio will decrease
 
**Kexi is not exposed to Words' users in any way; conversely - users may find the connection in Kexi if they decide
 
**jstaniek offers to move relevant part of KexiDB to calligra/libs/ '''ASAP'''
 
***the library renames to calligradb and the dir is calligra/libs/db/ (to avoid references to Kexi)
 
***missing bits of the API needed by Biblio can be added (since there's no BC/SC requirement in KexiDB)
 
**jstaniek offers support for smitpatel in KexiDB use
 
**jstaniek offers support for porting to Predicate when Predicate arrives
 
**jstaniek offers maintaining the libcalligradb for Qt 5.0
 
**jstaniek proposes to keep KexiDB namespace in libcalligradb however since it defines API which is heavily used in Kexi (3200+ times); after moving to Predicate it won't be a problem
 
**all devs want to avoid changes of the db format so the current QtSQL-based code even if released, will be marked as experimental, before moving to KexiDB
 

Latest revision as of 19:44, 19 September 2016

In Kexi 2.x, CalligraDB is a database connectivity and creation library. Its origins are in Kexi 1.x so it is internally called KexiDB.

This page will be moved to KDb after the release of Kexi 3 which is based on KDb.


See also http://kexi-project.org/wiki/wikiview/[email protected]


This page was last edited on 19 September 2016, at 19:44. Content is available under Creative Commons License SA 4.0 unless otherwise noted.