[turba] "requested object not found" after upgrade from 1.1 to 2.2
Giacomo Di Ciocco
admin at nectarine.info
Mon Jul 7 22:08:38 UTC 2008
Otto Stolz ha scritto:
> I just wanted to point out that you have to apply to your database
> the upgrade script, as discussed in the UPGRADE doc file. Failure of
> doing so would probably result in the symptoms you have described.
>
> Another possible problem is discussed in
> <http://wiki.horde.org/FAQ/Admin/Troubleshoot/Turba#toc4>.
>
> Good luck,
> Otto Stolz
>
Ciao Otto,
thank you for your reply, i think that the problem is in
turba_shares.share_owner and turba_shares_users.user_uid length;
update script uses VARCHAR(32) for both but turba_objects.owner_id is
VARCHAR(255) so they cant match with long user at domain.
I made a tcl script to fix these problems on my db but it will still
keep zombies in turba_shares and turba_shares_users,
they are those who dont have any record in turba_objects.
Plus it will make troubles with similar accounts that differ over the
32th character only.
It is here only as an example, DO NOT USE IT.
Reagrds,
Giacomo.
#!/usr/bin/tclsh
load /lib/fbsql.so
sql connect 127.0.0.1 user password
sql selectdb horde
foreach owner_id [sql "SELECT owner_id from turba_objects"] {
set users($owner_id) $owner_id
}
foreach user [array names users] {
set username $users($user)
foreach user_uid [sql "SELECT user_uid from turba_shares_users"] {
set tr_user_uid [lindex $user_uid 0]
if {[string match "$tr_user_uid*" $username ]} {
sql "update turba_shares_users set user_uid =
\'$username\' where user_uid = \'$tr_user_uid\'"
# puts "$tr_user_uid $username"
}
}
foreach share_owner [sql "SELECT share_owner from turba_shares"] {
set tr_share_owner [lindex $share_owner 0]
if {[string match "$tr_share_owner*" $username ]} {
sql "update turba_shares set share_owner =
\'$username\' where share_owner = \'$tr_share_owner\'"
# puts "$tr_share_owner $username"
}
}
set uniqid [lindex [sql "select share_id from turba_shares where
share_owner = \'$username\' limit 1"] 0]
if {$uniqid != ""} {
sql "delete from turba_shares_users where user_uid =
\'$username\' and share_id != \'$uniqid\'"
sql "delete from turba_shares where share_owner =
\'$username\' and share_id != \'$uniqid\'"
}
}
sql disconnect
More information about the turba
mailing list