[dev] [commits] Horde branch master updated. 395a6e1f5eaf894889892e2d1c58f5bb71a22188

Michael M Slusarz slusarz at horde.org
Fri Mar 25 17:14:16 UTC 2011


Quoting Jan Schneider <jan at horde.org>:

> Zitat von Michael J Rubinsky <mrubinsk at horde.org>:
>
>> --
>> Mike
>> Sent from my iPad...
>>
>> On Mar 24, 2011, at 7:37 PM, Michael M Slusarz <slusarz at horde.org> wrote:
>>
>>> Quoting Jan Schneider <jan at horde.org>:
>>>
>>>> Zitat von Michael M Slusarz <slusarz at horde.org>:
>>>>
>>>>> Quoting Jan Schneider <jan at horde.org>:
>>>>>
>>>>>>> -----------------------------------------------------------------------
>>>>>>>
>>>>>>> commit 5bf5caa8503b68b0f4b218f9f8c6a3d1ae98fad4
>>>>>>> Author: Michael M Slusarz <slusarz at curecanti.org>
>>>>>>> Date:   Thu Mar 24 14:58:11 2011 -0600
>>>>>>>
>>>>>>> These all break migrations if database doesn't exist
>>>>>>>
>>>>>>> framework/Vfs/migration/Horde/Vfs/1_horde_vfs_base_tables.php   
>>>>>>>    |    9 +++-
>>>>>>> .../Vfs/migration/Horde/Vfs/2_horde_vfs_upgrade_autoincrement.php |    
>>>>>>> 11 +++-
>>>>>>> 2 files changed, 15 insertions(+), 5 deletions(-)
>>>>>>>
>>>>>>> http://git.horde.org/horde-git/-/commit/5bf5caa8503b68b0f4b218f9f8c6a3d1ae98fad4
>>>>>>
>>>>>> Why and when would you run a "down" migration if you don't even  
>>>>>> have a database?
>>>>>
>>>>> You have a corrupt database/table and want to remove the table  
>>>>> (which just happened to me).  There is no way to recreate the  
>>>>> table unless the schema version is returned to 0, which can only  
>>>>> be done this way.
>>>>
>>>> If you corrupted your database, you need to fix it manually. The  
>>>> point of the migration scripts is that they *depend* on schema  
>>>> version info being correct.
>>>
>>> Then this is a giant step backward.  Because I had *no* idea that  
>>> I was also responsible for deleting a schema database that I was  
>>> not even aware existed.
>>
>> I wouldn't call this a giant step backwards. IMO this isn't much  
>> different the the old sequence tables that were automatically  
>> generated.
>
> With the difference that the schema tables already *are* being  
> deleted when migrating down to 0.

But in my example, I can't get back down to 0.  So I can't drop the  
schema table.  Which means it won't let me migrate down to version 0.   
See the circular issue here?

>>> We HAVE to provide a way to rebuild tables from scratch in this  
>>> circumstance - especially since we no longer provide an SQL schema  
>>> to be able to do this manually.
>>
>> Maybe I'm missing something here, but shouldn't the table be  
>> removed via a down migration, instead of manually deleting it thus  
>> resetting the schema version correctly?
>
> Yes, exactly. From Michael's commit I assume that the VFS tables  
> already were deleted, but the schema version was still higher than  
> 0. So migrating down failed.

They weren't (all) deleted - the schema table still existed.  But what  
if tables weren't deleted at all?  Or what if there was an issue  
recovering from a backup such as text being encoded incorrectly?  Or  
what if I decided to uninstall a package (e.g. VFS) that contained a  
SQL table?  Or what if I just simply wanted to clean out a table and  
start over again?

There needs to be some way to do all of these without resorting to  
manually logging on to the SQL server.

> But:
> 1) This is not different from H3 migration style. We have to assume  
> the current state of the database for upgrade scripts to properly  
> work.

I'm not talking about migration.  I'm talking about recreating the  
database.  It may be called Horde_Db_Migration, but the fact is this  
is the *ONLY* way to presently create database tables in Horde.  There  
is no way to manually create a table.  So if something goes wrong, and  
something WILL go wrong, I am SOL without advanced PHP knowledge?   
Because what you are essentially asking from an admin is that if  
something goes wrong in a database, they need to visually parse the  
contents of a migration script to determine which tables to drop while  
also tasking them with the knowledge that a schema version table  
exists elsewhere in the database that also has to be altered.  So how  
is this not a giant step backward from H3?

I'm really asking for nothing more than a reset/clear command to  
horde/bin/db_migrate - a command that will essentially run ONLY the  
version 1 -> 0 downgrade no matter the current version of the schema.

michael

___________________________________
Michael Slusarz [slusarz at horde.org]



More information about the dev mailing list