Wie erhält man die SQL der Änderungen an der database von einem Update oder Upgrade?

Wenn ich ein Plugin, ein Theme oder sogar den core von WordPress aktualisiere / aktualisiere, hat das Auswirkungen auf die database, es ändert viele Dinge. Wie behalte ich es im Auge?

Das Problem ist, dass ich ein Repository habe, alle an den Dateien vorgenommenen Änderungen werden korrekt verfolgt, aber ich habe keine Ahnung, wie man eine SQL-Datei zum Speichern der databaseänderungen erstellt (ändern, einfügen, aktualisieren, löschen, erstellen) , etc.).

Ich benutze ein Tool, das Flyway ist, das die Liste der SQL-Dateien, die ich im Repository habe, auswählt und die Abfrage jeder Datei auf die database anwendet. Meine Frage ist also, wie ich eine SQL-Abfrage aller Änderungen erstelle oder erhalte gemacht von der Update / Upgrade-Zukunft von WordPress? Auf diese Weise wird das ganze Team nur in der Lage sein, vom Repo abzuziehen und die Änderungen, die ich vorgenommen habe, werden verbreitet.

Vielen Dank.

Solutions Collecting From Web of "Wie erhält man die SQL der Änderungen an der database von einem Update oder Upgrade?"

Log-Abfragen:

Sie können alle Abfragen während Core / Plugin / Theme-Upgrades sammeln, um zu sehen, was passiert. Folge einfach diesen zwei Schritten:

1) Sie sollten hinzufügen:

define( 'SAVEQUERIES', TRUE ); 

zu Ihrer wp-config.php Datei, um alle Abfragen während des $wpdb->queries einer Seite in das Array $wpdb->queries zu sammeln. Denken Sie daran, es danach zu entfernen.

2) Dann könnten Sie es in der sql.log Datei sql.log . Hier ist ein einfaches Beispiel:

 /** * Dump all database queries to the /wp-content/sql.log file. */ add_action( 'shutdown', function(){ $file = WP_CONTENT_DIR . '/sql.log'; // Edit this filepath to your needs. if( current_user_can( 'manage_options' ) && file_exists( $file ) && is_writeable( $file ) && isset( $GLOBALS['wpdb']->queries ) ) file_put_contents( $file, date( 'c' ) . PHP_EOL . print_r( $GLOBALS['wpdb']->queries, TRUE ), FILE_APPEND ); }); 

oder verwenden Sie den query der wpdb class, um nur die INSERT , UPDATE und DELETE Abfragen zu protokollieren:

 /** * Log the INSERT, UPDATE, DELETE database queries to the /wp-content/sql.log file. */ add_filter( 'query', function( $query ){ if( FALSE !== stripos( $query, 'UPDATE ' ) || FALSE !== stripos( $query, 'INSERT ' ) || FALSE !== stripos( $query, 'DELETE ' ) ) { $file = WP_CONTENT_DIR . '/sql.log'; // Edit this filepath to your needs. if( file_exists( $file ) && is_writeable( $file ) ) file_put_contents( $file, date( 'c' ) . ' - ' . $query . PHP_EOL, FILE_APPEND | LOCK_EX ); } return $query; }, PHP_INT_MAX ); 

Core-Upgrade-Dateien:

Bei Core-Upgrades könnten diese Dateien für Sie von Interesse sein

  • /wp-includes/version.php
  • /wp-admin/includes/upgrade.php
  • /wp-admin/includes/schema.php

In der Datei /wp-admin/includes/upgrade.php finden Sie die Upgrade-function: wp_upgrade() , die die function wp_upgrade() aufruft. Es enthält database-Upgrades für jede Version in Bezug auf functionen wie upgrade_xxx()

Beispielsweise:

  ...truncated... if ( $wp_current_db_version < 22422 ) upgrade_350(); if ( $wp_current_db_version < 25824 ) upgrade_370(); if ( $wp_current_db_version < 26148 ) upgrade_372(); if ( $wp_current_db_version < 26691 ) upgrade_380(); maybe_disable_link_manager(); maybe_disable_automattic_widgets(); update_option( 'db_version', $wp_db_version ); update_option( 'db_upgraded', true ); 

Ich hoffe das hilft.