A major future goal of Deki is to gain cross-database support. This will allow Deki to run in more environments where the only currently supported RDBMS -- MySql -- is not widely deployed or in some cases is even disallowed. This spec page serves as a way to aggregate the ideas and tasks involved in achieving db independence. So far it's mostly a stub page so don't hesitate to change any structure or content.

Database support wishlist

This is based on the perceived number of requests on the forum starting at most requested:

  • MSSQL
  • Oracle

Once these are working the effort to port to other db's is greatly reduced.

Use an ORM lib?

Would be great to take advantage of an existing library to handle the database-specifics. Unfortunately since we didn't start using an ORM it may take significant effort to port the existing db logic to something that can cleanly be handled by a lib such as nHibernate or others. Tables may not map cleanly enough and there may still be a lot of queries hand written or with a meta query language like HQL. This option needs to be explored further.

Other ORM's to look at?

Pluggable data layer design

Currently all (ok, 98%) of the queries are done from the data access layer. The trunk code for this is here: https://svn.mindtouch.com/source/pub...ki/DataAccess/

 

Use a factory pattern to return classes/connection strings associated with the configured db. Existing datalayer can start out as being the base classes and any db-specific methods can override where necessary.

Database-specific queries

Need to evaluate the existing MySql queries and determine the known incompatibilities and solutions up front.

 

Limit/Offset: MSSQL

 

Limit/Offset: Oracle

Using ROWNUM Properly for Pagination

  

Upgrades and schema changes

Column changes, Table removal/addition, data updates, etc

 

Tag page (Edit tags)
    Viewing 2 of 2 comments: view all
    What are the other 2% of queries generated from?
    Posted 22:47, 9 Oct 2008
    I would LOVE MS SQL as a backend database. Not because I think it's better or worse than most solutions, but e.g. we have an IT strategy that bases us on MS SQL. If we have to use a MySQL as backend, it can be hard to argument why this particular product should be the one we choose.

    Even if it's the best product.

    So you have my vote for MS SQL as a backend DB !
    Posted 11:35, 23 Apr 2009
    Viewing 2 of 2 comments: view all
    You must login to post a comment.