[Dbix-class] admin functions for the storage object?
Ash Berlin
ash_cpan at firemirror.com
Mon May 7 15:57:36 GMT 2007
Matt S Trout wrote:
> On Fri, May 04, 2007 at 08:48:22PM +0100, Jess Robinson wrote:
>> On Fri, 4 May 2007, John Napiorkowski wrote:
>>
>>> Hi,
>>>
>>> Not sure if this is something other people care about but I end up have to
>>> write some
>>> driver specific code for stuff like dis/enabling FK constraints and so
>>> forth to make it
>>> easier to deploy tables and preload data. I know this doesn't effect all
>>> databases
>>> and each database has it's own way to deal with this. So I was wondering
>>> if this might
>>> be a useful thing to add to the storage class. I would add some methods
>>> to do stuff
>>> like
>>>
>>> -- dis/enable FK support
>>> -- dis/enable triggers
>> This is/should be already done by SQL::Translator::Producer::MySQL (turns
>> off foreign key constraints), if you'd like to patch sql for the rest,
>> I'll commit the patches.
>
> The problem is that it's also important for bulk data-loading, which is kinda
> on the boundary between DDL and DML stuff. Really, I think we probably need
> to accept that there are some things that mix across boundaries and in the
> absence of a unified SQLT/SQLA type project the storage object is probably
> the best place for it.
>
> Plus, correctly formulated DDL shouldn't actually require FK constraints to
> be turned off so I'd rather see a patch to SQLT to re-order things correctly
> and not do that in there at all!
Sadly, this is not the case for MySQL w/InnoDB - there are some
situations where InnoDB will flat out refuse to alter a table with
constraints on it (I forget the exact pattern needed, but i know it
exists.) But for create, yes this is possible.
Also what about loops in constraints? (A -> B -> C -> A, or just A -> A
for that matter)
And I'm fairly sure I made SQLT::Producer::MySQL disable the key checks
anyways..... could be wrong tho, I have been before.
-ash
More information about the Dbix-class
mailing list