savedemo.sh 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. #!/bin/sh
  2. #------------------------------------------------------
  3. # Script to extrac a database with demo values.
  4. # Note: "dialog" tool need to be available if no parameter provided.
  5. #
  6. # Regis Houssin - regis.houssin@inodbox.com
  7. # Laurent Destailleur - eldy@users.sourceforge.net
  8. #------------------------------------------------------
  9. # Usage: savedemo.sh
  10. # usage: savedemo.sh mysqldump_dolibarr_x.x.x.sql database port login pass
  11. #------------------------------------------------------
  12. export mydir=`echo "$0" | sed -e 's/savedemo.sh//'`;
  13. if [ "x$mydir" = "x" ]
  14. then
  15. export mydir="."
  16. fi
  17. export id=`id -u`;
  18. # ----------------------------- check if root
  19. if [ "x$id" != "x0" -a "x$id" != "x1001" ]
  20. then
  21. echo "Script must be ran as root"
  22. exit
  23. fi
  24. # ----------------------------- command line params
  25. dumpfile=$1;
  26. base=$2;
  27. port=$3;
  28. admin=$4;
  29. passwd=$5;
  30. # ----------------------------- if no params on command line
  31. if [ "x$passwd" = "x" ]
  32. then
  33. export dumpfile=`ls -v $mydir/mysqldump_dolibarr_*.sql | tail -n 1`
  34. export dumpfile=`basename $dumpfile`
  35. # ----------------------------- input file
  36. DIALOG=${DIALOG=dialog}
  37. DIALOG="$DIALOG --ascii-lines"
  38. fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
  39. trap "rm -f $fichtemp" 0 1 2 5 15
  40. $DIALOG --title "Save Dolibarr with demo values" --clear \
  41. --inputbox "Output dump file :" 16 55 $dumpfile 2> $fichtemp
  42. valret=$?
  43. case $valret in
  44. 0)
  45. dumpfile=`cat $fichtemp`;;
  46. 1)
  47. exit;;
  48. 255)
  49. exit;;
  50. esac
  51. # ----------------------------- database name
  52. DIALOG=${DIALOG=dialog}
  53. DIALOG="$DIALOG --ascii-lines"
  54. fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
  55. trap "rm -f $fichtemp" 0 1 2 5 15
  56. $DIALOG --title "Save Dolibarr with demo values" --clear \
  57. --inputbox "Mysql database name :" 16 55 dolibarrdemo 2> $fichtemp
  58. valret=$?
  59. case $valret in
  60. 0)
  61. base=`cat $fichtemp`;;
  62. 1)
  63. exit;;
  64. 255)
  65. exit;;
  66. esac
  67. # ---------------------------- database port
  68. DIALOG=${DIALOG=dialog}
  69. fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
  70. trap "rm -f $fichtemp" 0 1 2 5 15
  71. $DIALOG --title "Save Dolibarr with demo values" --clear \
  72. --inputbox "Mysql port (ex: 3306):" 16 55 3306 2> $fichtemp
  73. valret=$?
  74. case $valret in
  75. 0)
  76. port=`cat $fichtemp`;;
  77. 1)
  78. exit;;
  79. 255)
  80. exit;;
  81. esac
  82. # ---------------------------- compte admin mysql
  83. DIALOG=${DIALOG=dialog}
  84. fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
  85. trap "rm -f $fichtemp" 0 1 2 5 15
  86. $DIALOG --title "Save Dolibarr with demo values" --clear \
  87. --inputbox "Mysql root login (ex: root):" 16 55 root 2> $fichtemp
  88. valret=$?
  89. case $valret in
  90. 0)
  91. admin=`cat $fichtemp`;;
  92. 1)
  93. exit;;
  94. 255)
  95. exit;;
  96. esac
  97. # ---------------------------- mot de passe admin mysql
  98. DIALOG=${DIALOG=dialog}
  99. fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
  100. trap "rm -f $fichtemp" 0 1 2 5 15
  101. $DIALOG --title "Save Dolibarr with demo values" --clear \
  102. --passwordbox "Password for Mysql root login :" 16 55 2> $fichtemp
  103. valret=$?
  104. case $valret in
  105. 0)
  106. passwd=`cat $fichtemp`;;
  107. 1)
  108. exit;;
  109. 255)
  110. exit;;
  111. esac
  112. # ---------------------------- chemin d'acces du repertoire documents
  113. #DIALOG=${DIALOG=dialog}
  114. #fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
  115. #trap "rm -f $fichtemp" 0 1 2 5 15
  116. #$DIALOG --title "Save Dolibarr with demo values" --clear \
  117. # --inputbox "Full path to documents directory (ex: /var/www/dolibarr/documents)- no / at end :" 16 55 2> $fichtemp
  118. #valret=$?
  119. #case $valret in
  120. # 0)
  121. #docs=`cat $fichtemp`;;
  122. # 1)
  123. #exit;;
  124. # 255)
  125. #exit;;
  126. #esac
  127. # ---------------------------- confirmation
  128. DIALOG=${DIALOG=dialog}
  129. $DIALOG --title "Save Dolibarr with demo values" --clear \
  130. --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
  131. case $? in
  132. 0) echo "Ok, start process...";;
  133. 1) exit;;
  134. 255) exit;;
  135. esac
  136. fi
  137. # ---------------------------- run sql file
  138. if [ "x$passwd" != "x" ]
  139. then
  140. export passwd="-p$passwd"
  141. fi
  142. export list="
  143. --ignore-table=$base.llx_abonne
  144. --ignore-table=$base.llx_abonne_extrafields
  145. --ignore-table=$base.llx_abonne_type
  146. --ignore-table=$base.llx_abonnement
  147. --ignore-table=$base.llx_accountingaccount
  148. --ignore-table=$base.llx_accountingsystem
  149. --ignore-table=$base.llx_advanced_extrafields
  150. --ignore-table=$base.llx_advanced_extrafields_options
  151. --ignore-table=$base.llx_advanced_extrafields_values
  152. --ignore-table=$base.llx_agefodd_calendrier
  153. --ignore-table=$base.llx_agefodd_certif_state
  154. --ignore-table=$base.llx_agefodd_certificate_type
  155. --ignore-table=$base.llx_agefodd_contact
  156. --ignore-table=$base.llx_agefodd_convention
  157. --ignore-table=$base.llx_agefodd_convention_stagiaire
  158. --ignore-table=$base.llx_agefodd_cursus
  159. --ignore-table=$base.llx_agefodd_cursus_extrafields
  160. --ignore-table=$base.llx_agefodd_formateur
  161. --ignore-table=$base.llx_agefodd_formateur_category
  162. --ignore-table=$base.llx_agefodd_formateur_category_dict
  163. --ignore-table=$base.llx_agefodd_formateur_training
  164. --ignore-table=$base.llx_agefodd_formateur_type
  165. --ignore-table=$base.llx_agefodd_formation_catalogue
  166. --ignore-table=$base.llx_agefodd_formation_catalogue_extrafields
  167. --ignore-table=$base.llx_agefodd_formation_catalogue_modules
  168. --ignore-table=$base.llx_agefodd_formation_catalogue_type
  169. --ignore-table=$base.llx_agefodd_formation_catalogue_type_bpf
  170. --ignore-table=$base.llx_agefodd_formation_cursus
  171. --ignore-table=$base.llx_agefodd_formation_objectifs_peda
  172. --ignore-table=$base.llx_agefodd_opca
  173. --ignore-table=$base.llx_agefodd_place
  174. --ignore-table=$base.llx_agefodd_reg_interieur
  175. --ignore-table=$base.llx_agefodd_session
  176. --ignore-table=$base.llx_agefodd_session_adminsitu
  177. --ignore-table=$base.llx_agefodd_session_admlevel
  178. --ignore-table=$base.llx_agefodd_session_calendrier
  179. --ignore-table=$base.llx_agefodd_session_commercial
  180. --ignore-table=$base.llx_agefodd_session_contact
  181. --ignore-table=$base.llx_agefodd_session_element
  182. --ignore-table=$base.llx_agefodd_session_extrafields
  183. --ignore-table=$base.llx_agefodd_session_formateur
  184. --ignore-table=$base.llx_agefodd_session_formateur_calendrier
  185. --ignore-table=$base.llx_agefodd_session_stagiaire
  186. --ignore-table=$base.llx_agefodd_session_stagiaire_heures
  187. --ignore-table=$base.llx_agefodd_session_status_type
  188. --ignore-table=$base.llx_agefodd_stagiaire
  189. --ignore-table=$base.llx_agefodd_stagiaire_certif
  190. --ignore-table=$base.llx_agefodd_stagiaire_cursus
  191. --ignore-table=$base.llx_agefodd_stagiaire_extrafields
  192. --ignore-table=$base.llx_agefodd_stagiaire_type
  193. --ignore-table=$base.llx_agefodd_training_admlevel
  194. --ignore-table=$base.llx_askpricesupplier
  195. --ignore-table=$base.llx_askpricesupplier_extrafields
  196. --ignore-table=$base.llx_askpricesupplierdet
  197. --ignore-table=$base.llx_askpricesupplierdet_extrafields
  198. --ignore-table=$base.llx_assetOf
  199. --ignore-table=$base.llx_assetOf_line
  200. --ignore-table=$base.llx_asset_workstation_of
  201. --ignore-table=$base.llx_asset_workstation_product
  202. --ignore-table=$base.llx_asset_workstation_task
  203. --ignore-table=$base.llx_assetof_amounts
  204. --ignore-table=$base.llx_asset_workstation_of
  205. --ignore-table=$base.llx_asset_workstation_of
  206. --ignore-table=$base.llx_asset_workstation_of
  207. --ignore-table=$base.llx_bookkeeping
  208. --ignore-table=$base.llx_bootstrap
  209. --ignore-table=$base.llx_bt_namemap
  210. --ignore-table=$base.llx_bt_speedlimit
  211. --ignore-table=$base.llx_bt_summary
  212. --ignore-table=$base.llx_bt_timestamps
  213. --ignore-table=$base.llx_bt_webseedfiles
  214. --ignore-table=$base.llx_c_civilite
  215. --ignore-table=$base.llx_c_dolicloud_plans
  216. --ignore-table=$base.llx_c_pays
  217. --ignore-table=$base.llx_c_source
  218. --ignore-table=$base.llx_c_ticketsup_category
  219. --ignore-table=$base.llx_c_ticketsup_severity
  220. --ignore-table=$base.llx_c_ticketsup_type
  221. --ignore-table=$base.llx_congespayes
  222. --ignore-table=$base.llx_congespayes_config
  223. --ignore-table=$base.llx_congespayes_events
  224. --ignore-table=$base.llx_congespayes_logs
  225. --ignore-table=$base.llx_congespayes_users
  226. --ignore-table=$base.llx_dolicloud_customers
  227. --ignore-table=$base.llx_dolicloud_stats
  228. --ignore-table=$base.llx_dolicloud_emailstemplates
  229. --ignore-table=$base.llx_dolireport_column
  230. --ignore-table=$base.llx_dolireport_criteria
  231. --ignore-table=$base.llx_dolireport_graph
  232. --ignore-table=$base.llx_dolireport_plot
  233. --ignore-table=$base.llx_dolireport_report
  234. --ignore-table=$base.llx_domain
  235. --ignore-table=$base.llx_ecommerce_category
  236. --ignore-table=$base.llx_ecommerce_commande
  237. --ignore-table=$base.llx_ecommerce_facture
  238. --ignore-table=$base.llx_ecommerce_product
  239. --ignore-table=$base.llx_ecommerce_site
  240. --ignore-table=$base.llx_ecommerce_societe
  241. --ignore-table=$base.llx_ecommerce_socpeople
  242. --ignore-table=$base.llx_element_rang
  243. --ignore-table=$base.llx_element_tag
  244. --ignore-table=$base.llx_eleves
  245. --ignore-table=$base.llx_eleves_extrafields
  246. --ignore-table=$base.llx_entity
  247. --ignore-table=$base.llx_entity_extrafields
  248. --ignore-table=$base.llx_entity_thirdparty
  249. --ignore-table=$base.llx_equipement_factory
  250. --ignore-table=$base.llx_factory
  251. --ignore-table=$base.llx_factory_extrafields
  252. --ignore-table=$base.llx_factorydet
  253. --ignore-table=$base.llx_filemanager_roots
  254. --ignore-table=$base.llx_fournisseur_ca
  255. --ignore-table=$base.llx_google_maps
  256. --ignore-table=$base.llx_lead
  257. --ignore-table=$base.llx_lead_extrafields
  258. --ignore-table=$base.llx_milestone
  259. --ignore-table=$base.llx_milestone
  260. --ignore-table=$base.llx_monitoring_probes
  261. --ignore-table=$base.llx_m
  262. --ignore-table=$base.llx_m_extrafields
  263. --ignore-table=$base.llx_monmodule_abcdef
  264. --ignore-table=$base.llx_notes
  265. --ignore-table=$base.llx_packages
  266. --ignore-table=$base.llx_pos_cash
  267. --ignore-table=$base.llx_pos_control_cash
  268. --ignore-table=$base.llx_pos_facture
  269. --ignore-table=$base.llx_pos_moviments
  270. --ignore-table=$base.llx_pos_ticketdet
  271. --ignore-table=$base.llx_pos_paiement_ticket
  272. --ignore-table=$base.llx_pos_places
  273. --ignore-table=$base.llx_pos_ticket
  274. --ignore-table=$base.llx_printer_ipp
  275. --ignore-table=$base.llx_publi_c_contact_list
  276. --ignore-table=$base.llx_publi_c_dnd_list
  277. --ignore-table=$base.llx_publi_c_method_list
  278. --ignore-table=$base.llx_residence
  279. --ignore-table=$base.llx_residence_building
  280. --ignore-table=$base.llx_residence_building_links
  281. --ignore-table=$base.llx_societe_rib2
  282. --ignore-table=$base.llx_sellyoursaas_cancellation
  283. --ignore-table=$base.llx_ticketsup
  284. --ignore-table=$base.llx_ultimatepdf
  285. --ignore-table=$base.llx_update_modules
  286. --ignore-table=$base.llx_ventilation_achat
  287. --ignore-table=$base.tmp_llx_accouting_account
  288. --ignore-table=$base.tmp_llx_product_batch
  289. --ignore-table=$base.tmp_llx_product_batch2
  290. "
  291. echo "mysqldump -P$port -u$admin -p***** $list $base > $mydir/$dumpfile"
  292. mysqldump -P$port -u$admin $passwd $list $base > $mydir/$dumpfile
  293. export res=$?
  294. if [ "x$res" = "x0" ]
  295. then
  296. echo "Success, file successfully loaded."
  297. else
  298. echo "Error, load failed."
  299. fi
  300. echo