Hi,
Lately i've busy creating, validating and parsing XML.
There are now two schemas used when defining upgrade files:
http://www.unifiedbpm.se/XMLschema/DAL/SQL.xsd
http://www.unifiedbpm.se/XMLschema/DBUpgrader/DBUpgrader.xsd
The first defines the, so far supported, SQL, and the second defines the DBUpgraders upgrade file.
As always, I had less time and it took more effort than I thought, but now I am closing in on having a working upgrader.
It is pretty cool to watch integration tests run that creates the same structure on five different database platforms, inserts data and selects back and actually works.
A bit left to do, but after that, this might actually be a useful functionality.
That's all folks, bye!
Showing posts with label database. Show all posts
Showing posts with label database. Show all posts
Oct 26, 2010
Sep 14, 2010
Connection(s) established. Initiating execution.
Hi y'all.
So now the next phase is finished.
I now implemented and tested connections to all supported database platforms.
I only used multi-platform python-components.
These are:
Especially DB2 and Oracle were quite cumbersome to connect to, and needed lots of proprietary stuff installed on the client. Also, they don't really support debian/ubuntu.
However, now that I know how everything works I will try to automate client installations, or at least document them well, so Unified BPM users won't have to go through all the hassle I had to.
Anyway, next now is to define a small XML schema for generalizing of database upgrade management.
My thought is that the same XML should be able to manage database upgrades for multiple platforms, through the functionality of the database abstraction layer.
I don't want some Unified BPM components to end up having half-a$$ed support for specific databases, like it is for the Drupal project, for example.
Also, this makes it possible to make really kewl database tests.
So now the next phase is finished.
I now implemented and tested connections to all supported database platforms.
I only used multi-platform python-components.
These are:
- PostgreSQL(psycopg2, native)
- MySQL(MySQLdb, native)
- SQL Server(pyodbc using FreeTDS)
- DB2(pyodbc, needs libdb2.so)
- Oracle(cx_Oracle, native, needs oracle instant client)
Especially DB2 and Oracle were quite cumbersome to connect to, and needed lots of proprietary stuff installed on the client. Also, they don't really support debian/ubuntu.
However, now that I know how everything works I will try to automate client installations, or at least document them well, so Unified BPM users won't have to go through all the hassle I had to.
Anyway, next now is to define a small XML schema for generalizing of database upgrade management.
My thought is that the same XML should be able to manage database upgrades for multiple platforms, through the functionality of the database abstraction layer.
I don't want some Unified BPM components to end up having half-a$$ed support for specific databases, like it is for the Drupal project, for example.
Also, this makes it possible to make really kewl database tests.
Labels:
cx_Oracle,
database,
DB2,
libdb2.so,
MySQL,
MySQLdb. pyodbc,
PostgreSQL,
psycopg2,
SQL Server,
upgrade,
XML
Aug 17, 2010
Done with first phase of SQL generation
So there.
Now I have, in python, created a class which does only the things I need to at begin with the first database part of Unified BPM, creating and querying simple database structures.
The class can currently create these kinds of SQL statements(and then some):
I now have working installations of all five databaseservers and will use them to set up integration tests for all flavours.
In practice, Partial DDL means that Unified BPM won't run on that platform but will be able to communicate with it. I simply won't commit to restricting myself to 30 bytes long identifiers. Somebody please think of the FK-names!
Now I have, in python, created a class which does only the things I need to at begin with the first database part of Unified BPM, creating and querying simple database structures.
The class can currently create these kinds of SQL statements(and then some):
- SELECT - with where, expressions, conditions, CASE, function calls, joins, subselects.
- CREATE TABLE - with defaults, primary keys, foreign keys and autoincrement
- CREATE INDEX - Unique, Clustered, Non-Clustered
- Full
- MySQL
- PostgreSQL
- DB2
- SQL Server
- Partial DDL
- Oracle(due to identifier limitations and auto-increment hassle)
I now have working installations of all five databaseservers and will use them to set up integration tests for all flavours.
In practice, Partial DDL means that Unified BPM won't run on that platform but will be able to communicate with it. I simply won't commit to restricting myself to 30 bytes long identifiers. Somebody please think of the FK-names!
Labels:
DAL,
database,
database abstraction layer,
DB2,
MySQL,
PostgreSQL,
UnifiedBPM
Subscribe to:
Posts (Atom)