2012-11-11 14:34:55 +01:00
#!/bin/sh
#------------------------------------------------------
2024-01-10 19:47:29 +01:00
# Script to extract a database with demo values.
2012-11-11 14:34:55 +01:00
# Note: "dialog" tool need to be available if no parameter provided.
#
2018-10-27 14:43:12 +02:00
# Regis Houssin - regis.houssin@inodbox.com
2012-11-11 14:34:55 +01:00
# Laurent Destailleur - eldy@users.sourceforge.net
#------------------------------------------------------
# Usage: savedemo.sh
# usage: savedemo.sh mysqldump_dolibarr_x.x.x.sql database port login pass
#------------------------------------------------------
2024-01-12 21:03:08 +01:00
# shellcheck disable=2012,2006,2034,2046,2064,2086,2155,2166,2186,2172,2268
2012-11-11 14:34:55 +01:00
export mydir = ` echo " $0 " | sed -e 's/savedemo.sh//' ` ;
if [ " x $mydir " = "x" ]
then
2024-01-10 19:47:29 +01:00
export mydir = "."
2012-11-11 14:34:55 +01:00
fi
export id = ` id -u` ;
# ----------------------------- check if root
if [ " x $id " != "x0" -a " x $id " != "x1001" ]
then
echo "Script must be ran as root"
exit
fi
# ----------------------------- command line params
dumpfile = $1 ;
base = $2 ;
port = $3 ;
admin = $4 ;
passwd = $5 ;
# ----------------------------- if no params on command line
if [ " x $passwd " = "x" ]
then
2019-09-26 14:35:50 +02:00
export dumpfile = ` ls -v $mydir /mysqldump_dolibarr_*.sql | tail -n 1`
2012-11-11 14:34:55 +01:00
export dumpfile = ` basename $dumpfile `
# ----------------------------- input file
DIALOG = ${ DIALOG =dialog }
DIALOG = " $DIALOG --ascii-lines "
fichtemp = ` tempfile 2>/dev/null` || fichtemp = /tmp/test$$
trap " rm -f $fichtemp " 0 1 2 5 15
$DIALOG --title "Save Dolibarr with demo values" --clear \
2024-01-10 19:47:29 +01:00
--inputbox "Output dump file :" 16 55 $dumpfile 2> $fichtemp
2012-11-11 14:34:55 +01:00
valret = $?
case $valret in
2024-01-10 19:47:29 +01:00
0)
dumpfile = ` cat $fichtemp ` ; ;
1)
exit ; ;
255)
exit ; ;
2012-11-11 14:34:55 +01:00
esac
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
# ----------------------------- database name
DIALOG = ${ DIALOG =dialog }
DIALOG = " $DIALOG --ascii-lines "
fichtemp = ` tempfile 2>/dev/null` || fichtemp = /tmp/test$$
trap " rm -f $fichtemp " 0 1 2 5 15
$DIALOG --title "Save Dolibarr with demo values" --clear \
2024-01-10 19:47:29 +01:00
--inputbox "Mysql database name :" 16 55 dolibarrdemo 2> $fichtemp
2012-11-11 14:34:55 +01:00
valret = $?
case $valret in
2024-01-10 19:47:29 +01:00
0)
base = ` cat $fichtemp ` ; ;
1)
exit ; ;
255)
exit ; ;
2012-11-11 14:34:55 +01:00
esac
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
# ---------------------------- database port
DIALOG = ${ DIALOG =dialog }
fichtemp = ` tempfile 2>/dev/null` || fichtemp = /tmp/test$$
trap " rm -f $fichtemp " 0 1 2 5 15
$DIALOG --title "Save Dolibarr with demo values" --clear \
2024-01-10 19:47:29 +01:00
--inputbox "Mysql port (ex: 3306):" 16 55 3306 2> $fichtemp
2012-11-11 14:34:55 +01:00
valret = $?
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
case $valret in
2024-01-10 19:47:29 +01:00
0)
port = ` cat $fichtemp ` ; ;
1)
exit ; ;
255)
exit ; ;
2012-11-11 14:34:55 +01:00
esac
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
# ---------------------------- compte admin mysql
DIALOG = ${ DIALOG =dialog }
fichtemp = ` tempfile 2>/dev/null` || fichtemp = /tmp/test$$
trap " rm -f $fichtemp " 0 1 2 5 15
$DIALOG --title "Save Dolibarr with demo values" --clear \
2024-01-10 19:47:29 +01:00
--inputbox "Mysql root login (ex: root):" 16 55 root 2> $fichtemp
2012-11-11 14:34:55 +01:00
valret = $?
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
case $valret in
2024-01-10 19:47:29 +01:00
0)
admin = ` cat $fichtemp ` ; ;
1)
exit ; ;
255)
exit ; ;
2012-11-11 14:34:55 +01:00
esac
2024-01-10 19:47:29 +01:00
# ---------------------------- Password for admin mysql (root)
2012-11-11 14:34:55 +01:00
DIALOG = ${ DIALOG =dialog }
fichtemp = ` tempfile 2>/dev/null` || fichtemp = /tmp/test$$
trap " rm -f $fichtemp " 0 1 2 5 15
$DIALOG --title "Save Dolibarr with demo values" --clear \
2024-01-10 19:47:29 +01:00
--passwordbox "Password for Mysql root login :" 16 55 2> $fichtemp
2012-11-11 14:34:55 +01:00
valret = $?
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
case $valret in
2024-01-10 19:47:29 +01:00
0)
passwd = ` cat $fichtemp ` ; ;
1)
exit ; ;
255)
exit ; ;
2012-11-11 14:34:55 +01:00
esac
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
# ---------------------------- chemin d'acces du repertoire documents
#DIALOG=${DIALOG=dialog}
#fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
#trap "rm -f $fichtemp" 0 1 2 5 15
#$DIALOG --title "Save Dolibarr with demo values" --clear \
2024-01-10 19:47:29 +01:00
# --inputbox "Full path to documents directory (ex: /var/www/dolibarr/documents)- no / at end :" 16 55 2> $fichtemp
2012-11-11 14:34:55 +01:00
#valret=$?
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
#case $valret in
# 0)
#docs=`cat $fichtemp`;;
# 1)
#exit;;
# 255)
#exit;;
#esac
2024-01-10 19:47:29 +01:00
2012-11-11 14:34:55 +01:00
# ---------------------------- confirmation
DIALOG = ${ DIALOG =dialog }
$DIALOG --title "Save Dolibarr with demo values" --clear \
2024-01-10 19:47:29 +01:00
--yesno " Do you confirm ? \n Dump file : ' $dumpfile ' \n Dump dir : ' $mydir ' \n Mysql database : ' $base ' \n Mysql port : ' $port ' \n Mysql login: ' $admin ' \n Mysql password : --hidden-- " 15 55
2012-11-11 14:34:55 +01:00
case $? in
2024-01-10 19:47:29 +01:00
0) echo "Ok, start process..." ; ;
1) exit ; ;
255) exit ; ;
2012-11-11 14:34:55 +01:00
esac
fi
# ---------------------------- run sql file
if [ " x $passwd " != "x" ]
then
export passwd = " -p $passwd "
fi
2012-11-12 19:30:17 +01:00
export list = "
2024-01-10 19:47:29 +01:00
--ignore-table= $base .llx_abonne
--ignore-table= $base .llx_abonne_extrafields
--ignore-table= $base .llx_abonne_type
--ignore-table= $base .llx_abonnement
--ignore-table= $base .llx_accountingaccount
--ignore-table= $base .llx_accountingsystem
--ignore-table= $base .llx_advanced_extrafields
--ignore-table= $base .llx_advanced_extrafields_options
--ignore-table= $base .llx_advanced_extrafields_values
--ignore-table= $base .llx_agefodd_calendrier
--ignore-table= $base .llx_agefodd_certif_state
--ignore-table= $base .llx_agefodd_certificate_type
--ignore-table= $base .llx_agefodd_contact
--ignore-table= $base .llx_agefodd_convention
--ignore-table= $base .llx_agefodd_convention_stagiaire
--ignore-table= $base .llx_agefodd_cursus
--ignore-table= $base .llx_agefodd_cursus_extrafields
--ignore-table= $base .llx_agefodd_formateur
--ignore-table= $base .llx_agefodd_formateur_category
--ignore-table= $base .llx_agefodd_formateur_category_dict
--ignore-table= $base .llx_agefodd_formateur_training
--ignore-table= $base .llx_agefodd_formateur_type
--ignore-table= $base .llx_agefodd_formation_catalogue
--ignore-table= $base .llx_agefodd_formation_catalogue_extrafields
--ignore-table= $base .llx_agefodd_formation_catalogue_modules
--ignore-table= $base .llx_agefodd_formation_catalogue_type
--ignore-table= $base .llx_agefodd_formation_catalogue_type_bpf
--ignore-table= $base .llx_agefodd_formation_cursus
--ignore-table= $base .llx_agefodd_formation_objectifs_peda
--ignore-table= $base .llx_agefodd_opca
--ignore-table= $base .llx_agefodd_place
--ignore-table= $base .llx_agefodd_reg_interieur
--ignore-table= $base .llx_agefodd_session
--ignore-table= $base .llx_agefodd_session_adminsitu
--ignore-table= $base .llx_agefodd_session_admlevel
--ignore-table= $base .llx_agefodd_session_calendrier
--ignore-table= $base .llx_agefodd_session_commercial
--ignore-table= $base .llx_agefodd_session_contact
--ignore-table= $base .llx_agefodd_session_element
--ignore-table= $base .llx_agefodd_session_extrafields
--ignore-table= $base .llx_agefodd_session_formateur
--ignore-table= $base .llx_agefodd_session_formateur_calendrier
--ignore-table= $base .llx_agefodd_session_stagiaire
--ignore-table= $base .llx_agefodd_session_stagiaire_heures
--ignore-table= $base .llx_agefodd_session_status_type
--ignore-table= $base .llx_agefodd_stagiaire
--ignore-table= $base .llx_agefodd_stagiaire_certif
--ignore-table= $base .llx_agefodd_stagiaire_cursus
--ignore-table= $base .llx_agefodd_stagiaire_extrafields
--ignore-table= $base .llx_agefodd_stagiaire_type
--ignore-table= $base .llx_agefodd_training_admlevel
--ignore-table= $base .llx_askpricesupplier
--ignore-table= $base .llx_askpricesupplier_extrafields
--ignore-table= $base .llx_askpricesupplierdet
--ignore-table= $base .llx_askpricesupplierdet_extrafields
--ignore-table= $base .llx_assetOf
--ignore-table= $base .llx_assetOf_line
--ignore-table= $base .llx_asset_workstation_of
--ignore-table= $base .llx_asset_workstation_product
--ignore-table= $base .llx_asset_workstation_task
--ignore-table= $base .llx_assetof_amounts
--ignore-table= $base .llx_asset_workstation_of
--ignore-table= $base .llx_asset_workstation_of
--ignore-table= $base .llx_asset_workstation_of
--ignore-table= $base .llx_bookkeeping
--ignore-table= $base .llx_bootstrap
--ignore-table= $base .llx_bt_namemap
--ignore-table= $base .llx_bt_speedlimit
--ignore-table= $base .llx_bt_summary
--ignore-table= $base .llx_bt_timestamps
--ignore-table= $base .llx_bt_webseedfiles
--ignore-table= $base .llx_c_civilite
--ignore-table= $base .llx_c_dolicloud_plans
--ignore-table= $base .llx_c_pays
--ignore-table= $base .llx_c_source
--ignore-table= $base .llx_c_ticketsup_category
--ignore-table= $base .llx_c_ticketsup_severity
--ignore-table= $base .llx_c_ticketsup_type
--ignore-table= $base .llx_cabinetmed_c_banques
--ignore-table= $base .llx_cabinetmed_c_examconclusion
--ignore-table= $base .llx_cabinetmed_cons_extrafields
--ignore-table= $base .llx_cabinetmed_diaglec
--ignore-table= $base .llx_cabinetmed_examaut
--ignore-table= $base .llx_cabinetmed_exambio
--ignore-table= $base .llx_cabinetmed_examenprescrit
--ignore-table= $base .llx_cabinetmed_motifcons
--ignore-table= $base .llx_cabinetmed_patient
--ignore-table= $base .llx_cabinetmed_societe
--ignore-table= $base .llx_congespayes
--ignore-table= $base .llx_congespayes_config
--ignore-table= $base .llx_congespayes_events
--ignore-table= $base .llx_congespayes_logs
--ignore-table= $base .llx_congespayes_users
--ignore-table= $base .llx_dolicloud_customers
--ignore-table= $base .llx_dolicloud_stats
--ignore-table= $base .llx_dolicloud_emailstemplates
--ignore-table= $base .llx_dolireport_column
--ignore-table= $base .llx_dolireport_criteria
--ignore-table= $base .llx_dolireport_graph
--ignore-table= $base .llx_dolireport_plot
--ignore-table= $base .llx_dolireport_report
--ignore-table= $base .llx_domain
--ignore-table= $base .llx_ecommerce_category
--ignore-table= $base .llx_ecommerce_commande
--ignore-table= $base .llx_ecommerce_facture
--ignore-table= $base .llx_ecommerce_product
--ignore-table= $base .llx_ecommerce_site
--ignore-table= $base .llx_ecommerce_societe
--ignore-table= $base .llx_ecommerce_socpeople
--ignore-table= $base .llx_element_rang
--ignore-table= $base .llx_element_tag
--ignore-table= $base .llx_eleves
--ignore-table= $base .llx_eleves_extrafields
--ignore-table= $base .llx_entity
--ignore-table= $base .llx_entity_extrafields
--ignore-table= $base .llx_entity_thirdparty
--ignore-table= $base .llx_equipement_factory
--ignore-table= $base .llx_factory
--ignore-table= $base .llx_factory_extrafields
--ignore-table= $base .llx_factorydet
--ignore-table= $base .llx_filemanager_roots
--ignore-table= $base .llx_fournisseur_ca
--ignore-table= $base .llx_google_maps
--ignore-table= $base .llx_lead
--ignore-table= $base .llx_lead_extrafields
--ignore-table= $base .llx_milestone
--ignore-table= $base .llx_milestone
--ignore-table= $base .llx_monitoring_probes
--ignore-table= $base .llx_m
--ignore-table= $base .llx_m_extrafields
--ignore-table= $base .llx_monmodule_abcdef
--ignore-table= $base .llx_notes
--ignore-table= $base .llx_packages
--ignore-table= $base .llx_packages_extrafields
--ignore-table= $base .llx_pos_cash
--ignore-table= $base .llx_pos_control_cash
--ignore-table= $base .llx_pos_facture
--ignore-table= $base .llx_pos_moviments
--ignore-table= $base .llx_pos_ticketdet
--ignore-table= $base .llx_pos_paiement_ticket
--ignore-table= $base .llx_pos_places
--ignore-table= $base .llx_pos_ticket
--ignore-table= $base .llx_printer_ipp
--ignore-table= $base .llx_publi_c_contact_list
--ignore-table= $base .llx_publi_c_dnd_list
--ignore-table= $base .llx_publi_c_method_list
--ignore-table= $base .llx_residence
--ignore-table= $base .llx_residence_building
--ignore-table= $base .llx_residence_building_links
--ignore-table= $base .llx_scaninvoices_filestoimport
--ignore-table= $base .llx_scaninvoices_filestoimport_extrafields
--ignore-table= $base .llx_scaninvoices_settings
--ignore-table= $base .llx_scaninvoices_settings_extrafields
--ignore-table= $base .llx_sellyoursaas_blacklistcontent
--ignore-table= $base .llx_sellyoursaas_blacklistdir
--ignore-table= $base .llx_sellyoursaas_blacklistfrom
--ignore-table= $base .llx_sellyoursaas_blacklistip
--ignore-table= $base .llx_sellyoursaas_blacklistmail
--ignore-table= $base .llx_sellyoursaas_blacklistto
--ignore-table= $base .llx_sellyoursaas_deploymentserver
--ignore-table= $base .llx_sellyoursaas_stats
--ignore-table= $base .llx_sellyoursaas_whitelistip
--ignore-table= $base .llx_societe_rib2
--ignore-table= $base .llx_sellyoursaas_cancellation
--ignore-table= $base .llx_ticketsup
--ignore-table= $base .llx_ultimatepdf
--ignore-table= $base .llx_update_modules
--ignore-table= $base .llx_ventilation_achat
--ignore-table= $base .tmp_llx_accouting_account
--ignore-table= $base .tmp_llx_product_batch
--ignore-table= $base .tmp_llx_product_batch2
--ignore-table= $base .tmp_tmp
--ignore-table= $base .tmp_user
"
2012-11-12 19:30:17 +01:00
echo " mysqldump -P $port -u $admin -p***** $list $base > $mydir / $dumpfile "
mysqldump -P$port -u$admin $passwd $list $base > $mydir /$dumpfile
2012-11-11 14:34:55 +01:00
export res = $?
if [ " x $res " = "x0" ]
then
echo "Success, file successfully loaded."
else
echo "Error, load failed."
fi
echo