Re: RFI: Database URIs

Jens Rehsack <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
Am 23.11.2013 um 02:13 schrieb David E. Wheeler <[email protected]>:

> DBI Folks & Gisle,
> 
> I want to add support for specifying database connections as URIs to Sqitch, my DB change management system. I started working on it today, following the examples of JDBC and PostgreSQL. Before I release, though, I’d like a bit of feedback on a couple of things.
> 
> First, I'm using the database name as the scheme in the URL. Some examples:
> 
>    postgresql://user@localhost:5433/dbname
>    sqlite:///path/to/foo.db
> 
> This is to make it easy to tell one DB from another. But I'm wondering if I should follow the example of JDBC more closely, and prepend "db:" or something to them. More like DBI DSNs, too. However, it would require a bit more work, as URI.pm does not currently recognize multiple colon-delimited strings as scheme names AFAICT. :-(

With that simplified scheme, you will never be able
to support any DBI::DBD::SqlEngine derived driver.
While you can configure on postgresql, mysql, oracle
etc. a lot in configuration files and special tables,
you can’t for DBD::CSV or DBD::DBM.
The complete 

    DBI->connect($dsn, $user, $passwd, \%attr)

4th argument is wasted in your current proposal.
A lot of simple arguments can be encoded in DSN,
but more complex stuff would require some kind of
serialization (eg. JSON). Hacking JSON on CLI is
always a charm ;)
Thinking of Gofer (or other proxies) can shoot
you in a new kind of hell ;)

> Next, I've added a bunch of URI subclasses for various database engines. I’m not to familiar with some of them, so if you see any listed here where the name (to be used in the scheme) and the default port is wrong, please let me know:
> 
>  https://github.com/theory/uri-db/blob/master/t/db.t#L9
> 
> Thanks!
> 
> David
> 
> PS: Is this something the DBI might want to use?
> 

Cheers
-- 
Jens Rehsack
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.