aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Update/_1238.php
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs/Update/_1238.php')
-rw-r--r--Zotlabs/Update/_1238.php45
1 files changed, 35 insertions, 10 deletions
diff --git a/Zotlabs/Update/_1238.php b/Zotlabs/Update/_1238.php
index 77a14c3fa..1c79cc36e 100644
--- a/Zotlabs/Update/_1238.php
+++ b/Zotlabs/Update/_1238.php
@@ -12,8 +12,14 @@ class _1238 {
dbesc('Premium Channel')
);
+ // remove broken xchan entries
+ $r0 = dbq("DELETE FROM xchan WHERE xchan_hash = ''");
+
+ // remove broken hubloc entries
+ $r1 = dbq("DELETE FROM hubloc WHERE hubloc_hash = ''");
+
// fix legacy zot hubloc_id_url
- $r1 = dbq("UPDATE hubloc
+ $r2 = dbq("UPDATE hubloc
SET hubloc_id_url = CONCAT(hubloc_url, '/channel/', SUBSTRING(hubloc_addr FROM 1 FOR POSITION('@' IN hubloc_addr) -1))
WHERE hubloc_network = 'zot'
AND hubloc_id_url = ''"
@@ -21,26 +27,45 @@ class _1238 {
// fix singleton networks hubloc_id_url
if(ACTIVE_DBTYPE == DBTYPE_MYSQL) {
- $r2 = dbq("UPDATE hubloc
- LEFT JOIN xchan ON hubloc_hash = xchan_hash
- SET hubloc_id_url = xchan_url
- WHERE hubloc_network IN ('activitypub', 'diaspora', 'friendica-over-diaspora', 'gnusoc')
- AND hubloc_id_url = ''
- AND xchan_url != ''"
+ // fix entries for activitypub which miss the xchan_url due to an earlier bug
+ $r3 = dbq("UPDATE xchan
+ SET xchan_url = xchan_hash
+ WHERE xchan_network = 'activitypub'
+ AND xchan_url = ''"
+ );
+
+ $r4 = dbq("UPDATE hubloc
+ LEFT JOIN xchan ON hubloc.hubloc_hash = xchan.xchan_hash
+ SET hubloc.hubloc_id_url = xchan.xchan_url
+ WHERE hubloc.hubloc_network IN ('activitypub', 'diaspora', 'friendica-over-diaspora', 'gnusoc')
+ AND hubloc.hubloc_id_url = ''
+ AND xchan.xchan_url IS NOT NULL"
);
}
if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
- $r2 = dbq("UPDATE hubloc
+ // fix entries for activitypub which miss the xchan_url due to an earlier bug
+ $r3 = dbq("UPDATE xchan
+ SET xchan_url = xchan_hash
+ WHERE xchan_network = 'activitypub'
+ AND xchan_url = ''"
+ );
+
+ $r4 = dbq("UPDATE hubloc
SET hubloc_id_url = xchan_url
FROM xchan
WHERE hubloc_hash = xchan_hash
AND hubloc_network IN ('activitypub', 'diaspora', 'friendica-over-diaspora', 'gnusoc')
AND hubloc_id_url = ''
- AND xchan_url != ''"
+ AND xchan_url IS NOT NULL"
);
}
- if($r1 && $r2) {
+ if($r0 && $r1 && $r2 && $r3 && $r4) {
+ // remove hubloc entries where hubloc_id_url could not be fixed
+ $r5 = dbq("DELETE FROM hubloc WHERE hubloc_id_url = ''");
+ }
+
+ if($r0 && $r1 && $r2 && $r3 && $r4 && $r5) {
q("COMMIT");
return UPDATE_SUCCESS;
}