Use DBIx::Class for DB abstraction




11 years ago
5 years ago


(Reporter: aarone, Unassigned)





11 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv: Gecko/20071128 SeaMonkey/1.1.7
Build Identifier: 

support additional databases by allowing use of DBIx::Class (or possibly some other ORM) for database abstraction.

Reproducible: Always

Steps to Reproduce:

This bug was created at the suggestion of mkanat as a possible resolution for Bug #285122 Support MS SQL Server as a database backend.

First implementation plan: create a db_driver to use DBIx::Class.

DBIx::Class is not a specific requirement but was suggested by mkanat because

<mkanat> aarone_: What we need is a bug for using DBIx::Class.
<mkanat> aarone_: If you'd like to help us support DBIx::Class, that'd be really really really really really good.
<mkanat> aarone_: Or some other ORM that you deem Good(TM). 
<aarone_> DBIx::Class works with Oracle and MS_SQL server?
<dwierenga> mkanat: what advantages would DBIx::Class bring?
mkanat> aarone_: I'll check, but I know it works at least with Oracle.
mkanat>	dwierenga: First is automatic massive cross-DB compat without any work on our part
mkanat>	dwierenga: Second is the elimination of almost all written SQL from Bugzilla.
dwierenga> mkanat: have you looked into Rose::DB at all?
<mkanat> dwierenga: I've read about it.
<mkanat> dwierenga: I think it's not mature enough for Bugzilla's use.
<mkanat> dwierenga: The reason I was thinking of DBIx::Class is that it's the de-facto standard.


11 years ago
Ever confirmed: true
It's also not just a solution for MS-SQL support, but for general support for all sorts of DBs without having to write our own drivers. It also gets us all the other advantages of using an ORM, such as eliminating most of our SQL.

DBIx::Class would be a replacement for Bugzilla::DB, in a sense. bug 399415 talks about a compatible replacement for Bugzilla::DB::Schema.
Summary: use DBIx::Class for DB abstraction → Use DBIx::Class for DB abstraction
You need to log in before you can comment on or make changes to this bug.