Skip to content

Instantly share code, notes, and snippets.

@denchev
Last active February 2, 2021 12:27
Show Gist options
  • Save denchev/3bdfd7bf1ed45d8f1d44387c4211d84b to your computer and use it in GitHub Desktop.
Save denchev/3bdfd7bf1ed45d8f1d44387c4211d84b to your computer and use it in GitHub Desktop.
Export all tables but only essential data from Magento 2
#!/bin/sh
###
### Modify this variable only. It should point to your app/etc/evn.php file.
ENV_FILE="/app/p2f3xbqpgpxow/app/etc/env.php"
###
###
extract_from_env () {
dirty=$(grep -m 1 $1 $ENV_FILE)
clean=$(echo $dirty | grep -P "=> \'([^\']+)'" -o | sed -e "s/=> '//g" | sed -e "s/'//g")
echo $clean
}
HOST='127.0.0.1'
USERNAME=$(extract_from_env username)
PASSWORD=$(extract_from_env password)
DATABASE=$(extract_from_env dbname)
DATABASE_DUMP_NAME='dump.sql'
cmd_mysqldump_data="mysqldump -h $HOST -u $USERNAME -p$PASSWORD --no-create-info --skip-triggers ";
skip_default_data () {
for i in cron_schedule synolia_maxmind_cache synolia_sync_status synolia_sync_log search_query sendfriend_log admin_passwords admin_system_messages admin_user admin_user_session adminnotification_inbox import_history adyen_invoice adyen_notification adyen_order_payment bazaarvoice_product_cl
do
cmd_mysqldump_data="$cmd_mysqldump_data --ignore-table=$DATABASE.$i"
done
}
skip_customers_data () {
for i in customer_address_entity customer_address_entity_datetime customer_address_entity_decimal customer_address_entity_int customer_address_entity_text customer_address_entity_varchar customer_visitor customer_entity customer_entity_datetime customer_entity_decimal customer_entity_int customer_entity_text customer_entity_varchar wishlist wishlist_item wishlist_item_option report_viewed_product_index report_viewed_product_aggregated_yearly report_viewed_product_aggregated_daily report_viewed_product_aggregated_monthly
do
cmd_mysqldump_data="$cmd_mysqldump_data --ignore-table=$DATABASE.$i"
done
}
skip_sales_data () {
for i in report_compared_product_index report_event sales_order sales_order_address sales_order_grid sales_order_item sales_order_payment sales_order_status_history sales_order_tax sales_order_tax_item sales_payment_transaction quote qoute_address quote_address_item quote_id_mask quote_item quote_item_option qoute_payment quote_shipping_rate tax_order_aggregated_created tax_order_aggregated_updated sales_creditmemo sales_creditmemo_comment sales_creditmemo_grid sales_creditmemo_item sales_invoice sales_invoice_aggregated sales_invoice_aggregated_order sales_invoice_comment sales_invoice_grid sales_invoice_item sales_shipment sales_shipment_comment sales_shipment_grid sales_shipment_item sales_shipment_track sales_shipping_aggregated sales_shipping_aggregated_order salesrule_coupon_aggregated salesrule_coupon_aggregated_updated
do
cmd_mysqldump_data="$cmd_mysqldump_data --ignore-table=$DATABASE.$i"
done
}
skip_catalog_data () {
for i in catalog_category_entity catalog_category_entity_datetime catalog_category_entity_decimal catalog_category_entity_int catalog_category_entity_text catalog_category_entity_varchar catalog_category_product catalog_category_product_index sequence_catalog_category catalog_product_bundle_option catalog_product_bundle_option_value catalog_product_bundle_selection catalog_product_entity_datetime catalog_product_entity_decimal catalog_product_entity_gallery catalog_product_entity_int catalog_product_entity_media_gallery catalog_product_entity_media_gallery_value catalog_product_entity_text catalog_product_entity_tier_price catalog_product_entity_varchar catalog_product_link catalog_product_link_attribute_decimal catalog_product_link_attribute_int catalog_product_link_attribute_varchar catalog_product_option catalog_product_option_price catalog_product_option_title catalog_product_option_type_price catalog_product_option_type_title catalog_product_option_type_value catalog_product_super_attribute_label catalog_product_super_attribute catalog_product_super_link catalog_product_website catalog_category_product_index catalog_category_product cataloginventory_stock_item cataloginventory_stock_status catalog_product_entity catalog_product_index_price catalog_product_index_eav
do
cmd_mysqldump_data="$cmd_mysqldump_data --ignore-table=$DATABASE.$i"
done
}
skip_reviews_data () {
for i in rating_option_vote rating_option_vote_aggregated review review_detail review_entity_summary review_store
do
cmd_mysqldump_data="$cmd_mysqldump_data --ignore-table=$DATABASE.$i"
done
}
skip_default_data
skip_reviews_data
skip_catalog_data
#skip_sales_data
skip_customers_data
cmd_mysqldump_data="$cmd_mysqldump_data $DATABASE >> $DATABASE_DUMP_NAME"
echo "# Export schema only"
mysqldump -h $HOST -u $USERNAME -p$PASSWORD --no-data $DATABASE > $DATABASE_DUMP_NAME;
echo "# Export data only"
eval $cmd_mysqldump_data
echo "# Compressing"
gzip -f $DATABASE_DUMP_NAME
echo "# Done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment