Friendica-Datenbank lässt sich nicht wiederherstellen
Ich teste immer ganz gerne zeitnah, nachdem ich einen neuen Dienst installiert habe, den #Restore. So gerade auch bei meiner frisch aufgesetzen #Friendica #Instanz
Der #Dump der Friendica #Datenbank läuft ohne #Fehlermeldung durch.
Beim Restore in eine neue, leere Datenbank, kommt sehr schnell eine lange Fehlermeldung und der Restore bricht ab. 😞
Hat jemand eine Idee?
Gerne teilen für mehr Reichtweite.
Table 'friendica.contact' doesn't existFehler bei der Anfrage:
CREATE ALGORITHM=UNDEFINED DEFINER=`user`@`localhost:3306` SQL SECURITY DEFINER VIEW `account-user-view` AS select `ucontact`.`id` AS `id`,`contact`.`id` AS `pid`,`ucontact`.`uid` AS `uid`,`contact`.`url` AS `url`,`contact`.`nurl` AS `nurl`,`contact`.`uri-id` AS `uri-id`,`item-uri`.`guid` AS `guid`,`contact`.`addr` AS `addr`,`contact`.`alias` AS `alias`,`contact`.`name` AS `name`,`contact`.`nick` AS `nick`,`contact`.`about` AS `about`,`contact`.`keywords` AS `keywords`,`contact`.`xmpp` AS `xmpp`,`contact`.`matrix` AS `matrix`,`contact`.`avatar` AS `avatar`,`contact`.`photo` AS `photo`,`contact`.`thumb` AS `thumb`,`contact`.`micro` AS `micro`,`contact`.`header` AS `header`,`contact`.`created` AS `created`,`contact`.`updated` AS `updated`,`ucontact`.`self` AS `self`,`ucontact`.`remote_self` AS `remote_self`,`ucontact`.`rel` AS `rel`,`contact`.`network` AS `network`,`ucontact`.`protocol` AS `protocol`,`contact`.`location` AS `location`,`ucontact`.`attag` AS `attag`,`contact`.`pubkey` AS `pubkey`,`contact`.`prvkey` AS `prvkey`,`contact`.`subscribe` AS `subscribe`,`contact`.`last-update` AS `last-update`,`contact`.`success_update` AS `success_update`,`contact`.`failure_update` AS `failure_update`,`contact`.`failed` AS `failed`,`contact`.`last-item` AS `last-item`,`contact`.`last-discovery` AS `last-discovery`,`contact`.`contact-type` AS `contact-type`,`contact`.`manually-approve` AS `manually-approve`,`contact`.`unsearchable` AS `unsearchable`,`contact`.`sensitive` AS `sensitive`,`contact`.`baseurl` AS `baseurl`,`contact`.`gsid` AS `gsid`,`ucontact`.`info` AS `info`,`contact`.`bdyear` AS `bdyear`,`contact`.`bd` AS `bd`,`contact`.`poco` AS `poco`,`contact`.`name-date` AS `name-date`,`contact`.`uri-date` AS `uri-date`,`contact`.`avatar-date` AS `avatar-date`,`contact`.`term-date` AS `term-date`,`contact`.`hidden` AS `global-ignored`,`contact`.`blocked` AS `global-blocked`,`ucontact`.`hidden` AS `hidden`,`ucontact`.`archive` AS `archive`,`ucontact`.`pending` AS `pending`,`ucontact`.`deleted` AS `deleted`,`ucontact`.`notify_new_posts` AS `notify_new_posts`,`ucontact`.`fetch_further_information` AS `fetch_further_information`,`ucontact`.`ffi_keyword_denylist` AS `ffi_keyword_denylist`,`ucontact`.`rating` AS `rating`,`ucontact`.`readonly` AS `readonly`,`ucontact`.`blocked` AS `blocked`,`ucontact`.`block_reason` AS `block_reason`,`ucontact`.`subhub` AS `subhub`,`ucontact`.`hub-verify` AS `hub-verify`,`ucontact`.`reason` AS `reason`,`contact`.`notify` AS `dfrn-notify`,`contact`.`poll` AS `dfrn-poll`,`item-uri`.`guid` AS `diaspora-guid`,`diaspora-contact`.`batch` AS `diaspora-batch`,`diaspora-contact`.`notify` AS `diaspora-notify`,`diaspora-contact`.`poll` AS `diaspora-poll`,`diaspora-contact`.`alias` AS `diaspora-alias`,`diaspora-contact`.`interacting_count` AS `diaspora-interacting_count`,`diaspora-contact`.`interacted_count` AS `diaspora-interacted_count`,`diaspora-contact`.`post_count` AS `diaspora-post_count`,`apcontact`.`uuid` AS `ap-uuid`,`apcontact`.`type` AS `ap-type`,`apcontact`.`following` AS `ap-following`,`apcontact`.`followers` AS `ap-followers`,`apcontact`.`inbox` AS `ap-inbox`,`apcontact`.`outbox` AS `ap-outbox`,`apcontact`.`sharedinbox` AS `ap-sharedinbox`,`apcontact`.`generator` AS `ap-generator`,`apcontact`.`following_count` AS `ap-following_count`,`apcontact`.`followers_count` AS `ap-followers_count`,`apcontact`.`statuses_count` AS `ap-statuses_count`,`gserver`.`site_name` AS `site_name`,`gserver`.`platform` AS `platform`,`gserver`.`version` AS `version`,`gserver`.`blocked` AS `server-blocked`,`gserver`.`failed` AS `server-failed` from (((((`contact` `ucontact` join `contact` on(`contact`.`uri-id` = `ucontact`.`uri-id` and `contact`.`uid` = 0)) left join `item-uri` on(`item-uri`.`id` = `ucontact`.`uri-id`)) left join `apcontact` on(`apcontact`.`uri-id` = `ucontact`.`uri-id`)) left join `diaspora-contact` on(`diaspora-contact`.`uri-id` = `ucontact`.`uri-id`)) left join `gserver` on(`gserver`.`id` = `contact`.`gsid`));Fatal error: Couldn't create table or view `DEFINER´
Michael Vogel
•Crazy-to-Bike
•@Michael Vogel
Und wie stelle ich den wieder her?
Das entscheidende Problem ist aber, dass der ganze Restore an der Stelle abbricht und bis dahin nur ganz wenige Tabellen überhaupt angelegt wurden.
Crazy-to-Bike
•@Michael Vogel
Ich habe getestet, was passiert, wenn ich beim Restore die Tabelle account_user_view auslasse.
Dann pasiert dasselbe bei der Tabelle account_view.
Wenn ich auch diese auslasse, bei der Tabelle application_view.
Gemeinsam haben alle diese Tabellen, dass sie eine Größe von 0,00 KB habe und dass bei Avg_row_length VIEW steht.
Von solchen Tabellen gibt es noch jede Menge weitere.
Ich vermute, die müsste ich alle auslassen...
Crazy-to-Bike
•@Michael Vogel
Wie vermutet. Wenn ich diese Tabellen auslasse, läuft der Datenbankrestore durch. Allerdings funktioniert die Instanz damit nicht mehr. So werden z.B. User-Infos nicht mehr gefunden / können nicht angezeigt werden.
Diese 19 Tabellen habe ich weggelassen:
account_user_view
account_view
application_view
category-view
collection-view
diaspora-contact-view
media-view
network-item-view
network-thread-view
owner-view
pending-view
post-thread-user-view
post-thread-view
post-user-view
post-view
profile_field-view
tag-search-view
tag-view
workerqueue-view
Crazy-to-Bike
•@Michael Vogel
Ich denke, das Problem ist, dass diese "Tabellen" gar keine Tabellen sind, sondern "Ansichten"
https://www.guru99.com/de/views.html
Diese virtuellen Tabellen lassen sich offensichtlich nicht so wiederherstellen wie normale Tabellen - und sind mir bislang bei noch keiner einzigen datenbankbasierten Webanwendung untergekommen.
Wie kriege ich diese "Ansichten" in eine neue Datenbank?
Michael Vogel
•bin/console dbstructure update -f
in der Shell eingibst.Crazy-to-Bike
•Danke dir.
Zwar kam da eine Fehlermeldung
Aber die Views wurden dennoch erstellt und ich schreibe gerade von Friendica, das mit der wiederhergestellten Datenbank arbeitet.