[HyperDB] dbDeltas with HyperDB
Chris Morrell
chris at cmorrell.com
Wed Oct 19 20:45:33 UTC 2011
I submitted a bug report:
https://core.trac.wordpress.org/ticket/19007
If anyone has a chance to double-check my code, that'd be great. I'll try
to give it some testing next week.
<http://cmorrell.com/> *Chris Morrell* Web: http://cmorrell.com Twitter:
@inxilpro <http://twitter.com/inxilpro>
On Wed, Oct 19, 2011 at 4:26 PM, Chris Morrell <chris at cmorrell.com> wrote:
> Really good point. dbDelta could drop the SHOW TABLES and the loop through
> those tables and perform exactly the same…
>
> <http://cmorrell.com/> *Chris Morrell* Web: http://cmorrell.com Twitter:
> @inxilpro <http://twitter.com/inxilpro>
>
>
>
> On Wed, Oct 19, 2011 at 1:43 PM, Andy Skelton <skeltoac at gmail.com> wrote:
>
>> Why does dbDelta bother with SHOW TABLES at all? Why not just loop
>> over the table names and do DESCRIBE TABLE on each one?
>>
>> foreach ( $cqueries as $table => $qry ) {
>> $tablefields = $wpdb->get_results( "DESCRIBE $table" );
>> if ( $tablefields ) {
>> // Generate ALTER TABLE statements
>> } else {
>> // Use CREATE TABLE statement
>> }
>> }
>>
>> Andy
>>
>> On Wed, Oct 19, 2011 at 12:23 PM, Chris Morrell <chris at cmorrell.com>
>> wrote:
>> > Hey everyone,
>> >
>> > I'm having an issue with HyperDB and the dbDelta function. dbDelta runs
>> the
>> > following code:
>> >
>> > $tables = $wpdb->get_col('SHOW TABLES;')
>> >
>> > And then loops through the results. Well, this can be a real issue with
>> > sharding, where each table can be located on a different database
>> server.
>> > It seems to me that the only way to solve this problem would be to
>> patch
>> > Wordpress core (have dbDelta check each table's existence individually)
>> and
>> > also patch HyperDB to properly parse the table name from the individual
>> SHOW
>> > TABLES query. There's an existing core
>> > ticket<http://core.trac.wordpress.org/ticket/17998>that begins to
>> > address a similar issue, but it won't work with HyperDB.
>> >
>> > Right now I'm just trying to figure out how to approach the issue. It
>> seems
>> > like it would affect just about any plugin that uses dbDelta to upgrade
>> > their database tables. Has anyone else run into this problem? Any good
>> > solutions?
>> >
>> > Thanks!
>> > <http://cmorrell.com/> *Chris Morrell* Web: http://cmorrell.com Twitter:
>> > @inxilpro <http://twitter.com/inxilpro>
>> > _______________________________________________
>> > HyperDB mailing list
>> > HyperDB at lists.automattic.com
>> > http://lists.automattic.com/mailman/listinfo/hyperdb
>> >
>> _______________________________________________
>> HyperDB mailing list
>> HyperDB at lists.automattic.com
>> http://lists.automattic.com/mailman/listinfo/hyperdb
>>
>
>
More information about the HyperDB
mailing list