Database abstraction (like AdoDB in PHP)

A

Andres Montiel

Is there something like ADODB in PHP for Python? something that would
allow me to easily switch databases just by changing a few parameters?
:)

- Andres
 
Y

Yermat

DH a écrit :
The person who wrote ADODB made a version for Python, too, recently:
http://php.weblogs.com/adodb_python

But see also:
http://sqlobject.org/
http://modeling.sourceforge.net/
and some commercial products like Rekall, mxODBC

In fact, this is nearly already the case. If your library is "Python
Database API Specification v2.0" compliant (see
http://www.python.org/peps/pep-0249.html) then you can just change the
connection object. But you need to take care of such thing like the
"paramstyle" parameters.
I've already use this to change from MySQL to ODBC with no change in the
code.

But the real pain is not the API, it is the SQL. For example an integer
will not be declare the same way in PostGres or MySQL, same for BLOB, etc.

That is why the only way is to do things in a more abstract way like
sqlobject or modeling. But I find it is still complicate to have a
persistent framework that can accept Database, ZODB, etc in a nice way...

Loïc
 
A

Andres Montiel

Thanks for the tips. :)

DH a écrit :


In fact, this is nearly already the case. If your library is "Python
Database API Specification v2.0" compliant (see
http://www.python.org/peps/pep-0249.html) then you can just change the
connection object. But you need to take care of such thing like the
"paramstyle" parameters.
I've already use this to change from MySQL to ODBC with no change in the
code.

But the real pain is not the API, it is the SQL. For example an integer
will not be declare the same way in PostGres or MySQL, same for BLOB, etc.

That is why the only way is to do things in a more abstract way like
sqlobject or modeling. But I find it is still complicate to have a
persistent framework that can accept Database, ZODB, etc in a nice way...

Loïc
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,183
Messages
2,570,968
Members
47,518
Latest member
TobiasAxf

Latest Threads

Top