So laden Sie die Plugin-database remote herunter und installieren sie

Ich habe folgendes Problem. Ich habe ein Plugin, das aufgrund der benötigten Daten riesig ist. Die Daten sind alle Länder und Städte der Welt sowie eine maxmind.mmdb-database.

1 – Problem

Momentan habe ich alles in das Plugin gepackt, das ein 20MB Plugin macht und das ein Problem für Benutzer mit begrenzter Upload-Größe schafft, die sie zwingen, das gesamte Plugin zu entpacken und manuell per FTP hochzuladen.

2 – Problem

Um alle Städte zu laden, habe ich 6 csv-Dateien, die ich bei Aktivierung mit folgendem Code geladen habe:

if ($wpdb->get_var( "SHOW TABLES LIKE '{$city_table_name}'") != $city_table_name) { dbDelta( $city_table ); for ( $i = 1; $i base_prefix}geot_cities` CHARACTER SET UTF8 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\' LINES TERMINATED BY '\\n' ( `country_code` , `city`);"; $wpdb->query( $load_data ); } } 

Dies funktioniert auf fast jedem Hosting, aber es scheitert in einigen von ihnen wie zum Beispiel WPEngine.

Mögliche Lösung

Also dachte ich mir, dass ich vielleicht beide Probleme sofort beheben könnte, wenn ich alle Daten auf meine Amazon-Instanz hochladen könnte. Sobald das Plugin aktiv ist, wird der Benutzer alle Daten herunterladen und installieren, indem er einfach auf eine Schaltfläche klickt.

Fragen

  • Ist dies etwas machbar oder machbar mit WordPress-functionen oder ich werde mit anderen Hosting-Inkompatibilitäten konfrontiert. Hat jemand Erfahrungen mit so etwas?
  • Falls dies machbar ist, was wäre der beste Weg, um die Daten zu speichern? Weil, anstatt den csv zu laden, ich diesen für irgendeine Art Einfügungsdatenfrage ersetzen muss, um sie kompatibler zu machen.

Ich hoffe, dass jemand etwas Licht darauf casting könnte. Vielen Dank!

Solutions Collecting From Web of "So laden Sie die Plugin-database remote herunter und installieren sie"

Um deine Fragen direkt zu beantworten:

Ihre vorgeschlagene Lösung ist in der Tat praktikabel, stellen Sie einfach sicher, dass Ihre CDN-Lösung (z. B. Amazon S3) so konfiguriert ist, dass sie sowohl sichere (http) als auch unsichere (https) Verbindungen akzeptiert.

Was Ihre nächste Frage betrifft, ist CSV von Natur aus eine gute Möglichkeit, eine Darstellung einer Tabelle zu speichern. Eine andere Alternative (ohne einen Beispieldatensatz zu sehen, mit dem Sie arbeiten) ist XML. Das passt auch gut, weil es Eins-zu-Viele-Beziehungen erlaubt.

JSON passt auch gut, um den Übergang zwischen Text und einer database zu erleichtern.

Allerdings ist die beste Lösung, einen API-Dienst selbst zu erstellen und es Ihrem Plugin zu ermöglichen, damit zu kommunizieren.

Ich kann zwei Optionen sehen:

  • Sie erstellen eine API mit der Stadtinfo und lassen das Plugin die API verwenden
  • Sie erstellen separate Add-Ons für Ihr Plugin, wie eines für jede CSV-Datei

Einige Ideen:

  1. UMSCHLOSSEN ‘\”‘

Es ist in diesem Fall kein Muss. Ohne “Zeichen” können Sie Ihre CSV-Dateigrößen reduzieren. Dies könnte allein helfen.

  1. Die Verwendung von SQLite kann eine andere Option sein. Wenn Postleitzahlen nur Zahlen sind, kann eine kleinere DB-Datei als eine CSV-Datei gespeichert werden, aber ich habe dies nicht getestet. Es ist einen Versuch wert. Und Sie können das als database verwenden. WP unterstützt dies standardmäßig nicht, daher müssen Sie andere functionen schreiben oder verwenden.
  2. Verwenden Sie HTTP-API-functionen ! Diese functionen werden auch vom Plugin-Manager verwendet. Wenn es dort funktioniert, kannst du sie auch hier verwenden.

Speichern von Daten: Meine beste Wette (wenn LOAD DATA nicht erlaubt ist) besteht darin, komprimierte JSON- oder INSERT-statementen in Ihrer Amazon-Instanz zu speichern.

Sie können hier auch deaktivierte functionen auf der WP Engine überprüfen .