Hi Michael,

thanks for the prompt response and your directions. This was really 
helpful. I will start as you've described in your reply.

Ralph

On Wednesday, April 8, 2015 at 6:19:27 AM UTC+2, Michael Bayer wrote:
>
>  
>
> On 4/7/15 1:59 PM, Ralph Heinkel wrote:
>  
> Hello dialect experts,
>
> what would be the best approach for creating a SqlAlchemy dialect for a 
> new database system? 
> Are there any recipes available for this area, or is the way to go to read 
> code of existing dialects and derive my own dialect from those?
>
> I had a first glance at some built-in dialects, and also some in external 
> packages ... it is not always obvious to me why certain classes and methods 
> have been implemented.
> The obvious thing is to create a subclass of 
> sqlalchemy.enginedefault.DefaultDialect, but how would I know which 
> methods and class attributes to override/implement, except for going 
> through the trial and error approach?
> And then there are other classes which are implemented in some dialects, 
> like compiler.DDLCompiler, compiler.GenericTypeCompiler, and so on ... 
> where and how would I start best?
>
> Any help would be very much appreciated.
>  
> Start with the README for new dialects:
>
>
> https://bitbucket.org/zzzeek/sqlalchemy/src/44a9820b4e02f65b3884fa2c016efce9663e4910/README.dialects.rst?at=master
>
> that will show the guidelines for writing new dialects.
>
> Then to see some examples of that layout, take a look at some of the 3rd 
> party dialects listed at:
>
> http://docs.sqlalchemy.org/en/latest/dialects/index.html#production-ready
>
> Also the "sqlalchemy-access" dialect is basically something of a "demo" 
> for the layout, which I basically put there after extracting it from 
> SQLAlchemy main where it had been for many years.   It might not be 100% up 
> to date, but mostly follows that guideline and even passed tests at one 
> point, that's at https://bitbucket.org/zzzeek/sqlalchemy-access.
>
> The key thing you'll be doing is running the suite tests, which will be 
> part of the test suite within your own dialect.  So yes, you start with a 
> fairly plain subclass of DefaultDialect, then you probably want to get a 
> "hello world" kind of program going where you just see if "create_engine" 
> and then "engine.execute("select * from table")" work at all, and then the 
> suite tests should test a lot more.
>
>
>
>
>
>  
> Ciao ciao
>
> Ralph
>  -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To post to this group, send email to [email protected] 
> <javascript:>.
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>
>
>  

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to