Hallo zusammen,
bei der Plugin Entwicklung möchte ich mein DB-Schema aktualisieren, falls die Tabelle bereits existiert.
Dazu habe ich folgende Code in meiner install-Methode:
$tool = new SchemaTool($this->container->get('models'));
$classes = [
$this->container->get('models')->getClassMetadata(FfbSupplier::class)
];
$tool->updateSchema($classes);
Nach dem Aufruf von updateSchema sind alle Tabellen bis auf die Plugin Tabelle weg.
Die Methode updateSchemaSql
/**
* Updates the database schema of the given classes by comparing the ClassMetadata
* instances to the current database schema that is inspected. If $saveMode is set
* to true the command is executed in the Database, else SQL is returned.
*
* @param array $classes
* @param boolean $saveMode
*
* @return void
*/
public function updateSchema(array $classes, $saveMode = false)
{
$updateSchemaSql = $this->getUpdateSchemaSql($classes, $saveMode);
var_dump($updateSchemaSql);die();
gibt mir ein Array mit 290 Einträgen zurück.
Hier ein Auschnitt, man sieht die Drop Table Befehle drin:
array(290) {
string(28) "DROP TABLE s_core_subscribes"
[183]=>
string(21) "DROP TABLE s_core_tax"
[184]=>
string(27) "DROP TABLE s_core_tax_rules"
[185]=>
string(27) "DROP TABLE s_core_templates"
[186]=>
string(43) "DROP TABLE s_core_templates_config_elements"
[187]=>
string(41) "DROP TABLE s_core_templates_config_layout"
[188]=>
string(38) "DROP TABLE s_core_templates_config_set"
[189]=>
string(41) "DROP TABLE s_core_templates_config_values"
[190]=>
string(32) "DROP TABLE s_core_theme_settings"
[191]=>
string(30) "DROP TABLE s_core_translations"
[192]=>
string(23) "DROP TABLE s_core_units"
[193]=>
string(30) "DROP TABLE s_core_widget_views"
[194]=>
string(25) "DROP TABLE s_core_widgets"
[195]=>
string(20) "DROP TABLE s_crontab"
[196]=>
string(31) "DROP TABLE s_emarketing_banners"
[197]=>
string(42) "DROP TABLE s_emarketing_banners_attributes"
[198]=>
string(42) "DROP TABLE s_emarketing_banners_statistics"
[199]=>
string(36) "DROP TABLE s_emarketing_lastarticles"
[200]=>
string(31) "DROP TABLE s_emarketing_partner"
[201]=>
string(42) "DROP TABLE s_emarketing_partner_attributes"
[202]=>
string(31) "DROP TABLE s_emarketing_referer"
[203]=>
string(35) "DROP TABLE s_emarketing_tellafriend"
[204]=>
string(37) "DROP TABLE s_emarketing_voucher_codes"
[205]=>
string(32) "DROP TABLE s_emarketing_vouchers"
[206]=>
string(43) "DROP TABLE s_emarketing_vouchers_attributes"
[207]=>
string(20) "DROP TABLE s_emotion"
[208]=>
string(31) "DROP TABLE s_emotion_attributes"
[209]=>
string(31) "DROP TABLE s_emotion_categories"
[210]=>
string(28) "DROP TABLE s_emotion_element"
[211]=>
string(34) "DROP TABLE s_emotion_element_value"
[212]=>
string(38) "DROP TABLE s_emotion_element_viewports"
[213]=>
string(26) "DROP TABLE s_emotion_shops"
[214]=>
string(30) "DROP TABLE s_emotion_templates"
[215]=>
string(23) "DROP TABLE s_es_backlog"
[216]=>
string(19) "DROP TABLE s_export"
[217]=>
string(28) "DROP TABLE s_export_articles"
[218]=>
string(30) "DROP TABLE s_export_attributes"
[219]=>
string(30) "DROP TABLE s_export_categories"
[220]=>
string(29) "DROP TABLE s_export_suppliers"
[221]=>
string(19) "DROP TABLE s_filter"
[222]=>
string(28) "DROP TABLE s_filter_articles"
[223]=>
string(30) "DROP TABLE s_filter_attributes"
[224]=>
string(27) "DROP TABLE s_filter_options"
[225]=>
string(38) "DROP TABLE s_filter_options_attributes"
[226]=>
string(29) "DROP TABLE s_filter_relations"
[227]=>
string(26) "DROP TABLE s_filter_values"
[228]=>
string(37) "DROP TABLE s_filter_values_attributes"
[229]=>
string(30) "DROP TABLE s_library_component"
[230]=>
string(36) "DROP TABLE s_library_component_field"
[231]=>
string(18) "DROP TABLE s_media"
[232]=>
string(24) "DROP TABLE s_media_album"
[233]=>
string(33) "DROP TABLE s_media_album_settings"
[234]=>
string(30) "DROP TABLE s_media_association"
[235]=>
string(29) "DROP TABLE s_media_attributes"
[236]=>
string(30) "DROP TABLE s_multi_edit_backup"
[237]=>
string(30) "DROP TABLE s_multi_edit_filter"
[238]=>
string(29) "DROP TABLE s_multi_edit_queue"
[239]=>
string(38) "DROP TABLE s_multi_edit_queue_articles"
[240]=>
string(18) "DROP TABLE s_order"
[241]=>
string(29) "DROP TABLE s_order_attributes"
[242]=>
string(25) "DROP TABLE s_order_basket"
[243]=>
string(36) "DROP TABLE s_order_basket_attributes"
[244]=>
string(33) "DROP TABLE s_order_billingaddress"
[245]=>
string(44) "DROP TABLE s_order_billingaddress_attributes"
[246]=>
string(30) "DROP TABLE s_order_comparisons"
[247]=>
string(26) "DROP TABLE s_order_details"
[248]=>
string(37) "DROP TABLE s_order_details_attributes"
[249]=>
string(28) "DROP TABLE s_order_documents"
[250]=>
string(39) "DROP TABLE s_order_documents_attributes"
[251]=>
string(22) "DROP TABLE s_order_esd"
[252]=>
string(26) "DROP TABLE s_order_history"
[253]=>
string(24) "DROP TABLE s_order_notes"
[254]=>
string(25) "DROP TABLE s_order_number"
[255]=>
string(34) "DROP TABLE s_order_shippingaddress"
[256]=>
string(45) "DROP TABLE s_order_shippingaddress_attributes"
[257]=>
string(35) "DROP TABLE s_plugin_recommendations"
[258]=>
string(33) "DROP TABLE s_plugin_widgets_notes"
[259]=>
string(29) "DROP TABLE s_premium_dispatch"
[260]=>
string(40) "DROP TABLE s_premium_dispatch_attributes"
[261]=>
string(40) "DROP TABLE s_premium_dispatch_categories"
[262]=>
string(39) "DROP TABLE s_premium_dispatch_countries"
[263]=>
string(38) "DROP TABLE s_premium_dispatch_holidays"
[264]=>
string(42) "DROP TABLE s_premium_dispatch_paymentmeans"
[265]=>
string(29) "DROP TABLE s_premium_holidays"
[266]=>
string(34) "DROP TABLE s_premium_shippingcosts"
[267]=>
string(28) "DROP TABLE s_product_streams"
[268]=>
string(37) "DROP TABLE s_product_streams_articles"
[269]=>
string(39) "DROP TABLE s_product_streams_attributes"
[270]=>
string(38) "DROP TABLE s_product_streams_selection"
[271]=>
string(27) "DROP TABLE s_schema_version"
[272]=>
string(26) "DROP TABLE s_search_fields"
[273]=>
string(25) "DROP TABLE s_search_index"
[274]=>
string(28) "DROP TABLE s_search_keywords"
[275]=>
string(26) "DROP TABLE s_search_tables"
[276]=>
string(42) "DROP TABLE s_statistics_article_impression"
[277]=>
string(36) "DROP TABLE s_statistics_currentusers"
[278]=>
string(28) "DROP TABLE s_statistics_pool"
[279]=>
string(31) "DROP TABLE s_statistics_referer"
[280]=>
string(30) "DROP TABLE s_statistics_search"
[281]=>
string(32) "DROP TABLE s_statistics_visitors"
[282]=>
string(17) "DROP TABLE s_user"
[283]=>
string(27) "DROP TABLE s_user_addresses"
[284]=>
string(38) "DROP TABLE s_user_addresses_attributes"
[285]=>
string(28) "DROP TABLE s_user_attributes"
[286]=>
string(32) "DROP TABLE s_user_billingaddress"
[287]=>
string(43) "DROP TABLE s_user_billingaddress_attributes"
[288]=>
string(33) "DROP TABLE s_user_shippingaddress"
[289]=>
string(44) "DROP TABLE s_user_shippingaddress_attributes"
}
Ist es ein SW-Bug oder mache ich hier komplett etwas falsch?