[storm] using odbc as a backend

Jeremy R. Fishman jfishman at bowdoin.edu
Fri Mar 6 17:21:13 GMT 2009


Martin DeMello wrote:
> Hi,
>
> I have got pyodbc set up and successfully connecting to my database,
> now I would like to use it from Storm. I looked through the API but
> couldn't figure out how I could drop in a pyodbc.Connection object and
> have storm work with that.
If you look in database.py, you'll see that all you need is a factory 
function/class for your database.  The code needs to
  a) take a URI and return a Database object
  b) implement raw_connect() on that Database object

Calling storm.database.register_scheme(scheme, factory) will register 
your factory for supplied scheme (e.g. 'mysql' for 'mysql://...' URIs, I 
would guess 'odb' for 'odb://...' URIs).

Alternatively, you can write your code in a module, stick it in 
storm.databases as storm.databases.odb, and implement the module-level 
function create_from_uri (or remap the class to that function name as well).
>  Has anyone done this? Any pointers?
>
> martin
>   
Either of the two options above will _work_ for connections, but if 
there are any database-specific quirks there could still be issues.  See 
storm.databases.mysql for some examples.  There is an alternative 
Connection object (using Database.connection_factory), and alternative 
Result object (using Connection.result_factory), and some alternative 
compile functions (using Connection.compile and tagged with 
@compile.when(...)).

Try a Database object and run the tests - I hope it works!

  - Jeremy



More information about the storm mailing list