Foros del Web » Programando para Internet » PHP »

crear un backup mysql con Illuminate

Estas en el tema de crear un backup mysql con Illuminate en el foro de PHP en Foros del Web. Hola a todos es que quiero ver como puedo hacer un backup mysql usando las clase de Illuminate es posible...
  #1 (permalink)  
Antiguo 20/07/2019, 16:12
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
crear un backup mysql con Illuminate

Hola a todos es que quiero ver como puedo hacer un backup mysql usando las clase de Illuminate es posible
  #2 (permalink)  
Antiguo 21/07/2019, 06:31
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: crear un backup mysql con Illuminate

Tengo esto ya echo pero me falta mas y no tengo idea

Código PHP:
Ver original
  1. function backup_tables($tables = '*') {
  2.  
  3.     $array_tables = [];
  4.     $return="";
  5.     $tables = $capsule::select('SHOW TABLES');
  6.     foreach ($tables as $key => $val) {
  7.         $tableName = (array)$val;
  8.         $tableName = array_shift($tableName);
  9.         array_push($array_tables, $tableName);
  10.     }
  11.  
  12.     foreach($array_tables as $table){
  13.        
  14.         $result = $capsule->table($table)->get();
  15.         $num_fields = count($result);
  16.         $return.= '--';
  17.         $return.="\n";
  18.         $return.= '-- Estructura de tabla para la tabla `'.$table.'`';
  19.         $return.="\n";
  20.         $return.= '--';
  21.         $return.="\n";
  22.         $return.= 'DROP TABLE '.$table.';';
  23.         $return.= "\nCREATE TABLE ".$table.";\n\n";
  24.         for ($i = 0; $i < $num_fields; $i++) {
  25.             foreach($result[$i] as $row){
  26.               if (isset($row))
  27.                     { $return2.= '"'.$row.'"' ;
  28.               } else {
  29.                     $return2.= '"not"';
  30.               }
  31.             }
  32.         }
  33.         $return.="\n\n";
  34.     }
  35.    
  36.     //save file
  37.     $handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+');
  38.     fwrite($handle,$return);
  39.     fclose($handle);
  40. }
  #3 (permalink)  
Antiguo 21/07/2019, 16:46
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: crear un backup mysql con Illuminate

Si no estas usando Laravel: http://phpbu.de/
Si estas usando laravel. https://github.com/spatie/laravel-backup
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 22/07/2019, 13:31
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: crear un backup mysql con Illuminate

Cita:
Iniciado por hhs Ver Mensaje
Si no estas usando Laravel: http://phpbu.de/
Si estas usando laravel. https://github.com/spatie/laravel-backup

si estuve mirando pero quiero crear uno mismo para mi sistema

Yo uso esto
Código PHP:
Ver original
  1. //MySQL server and database
  2. $dbhost = 'localhost';
  3. $dbuser = 'my_user';
  4. $dbpass = 'my_pwd';
  5. $dbname = 'database_name';
  6. $tables = '*';
  7.  
  8. //Call the core function
  9. backup_tables($dbhost, $dbuser, $dbpass, $dbname, $tables);
  10.  
  11. //Core function
  12. function backup_tables($host, $user, $pass, $dbname, $tables = '*') {
  13.     $link = mysqli_connect($host,$user,$pass, $dbname);
  14.  
  15.     // Check connection
  16.     {
  17.         echo "Failed to connect to MySQL: " . mysqli_connect_error();
  18.         exit;
  19.     }
  20.  
  21.     mysqli_query($link, "SET NAMES 'utf8'");
  22.  
  23.     //get all of the tables
  24.     if($tables == '*')
  25.     {
  26.         $tables = array();
  27.         $result = mysqli_query($link, 'SHOW TABLES');
  28.         while($row = mysqli_fetch_row($result))
  29.         {
  30.             $tables[] = $row[0];
  31.         }
  32.     }
  33.     else
  34.     {
  35.         $tables = is_array($tables) ? $tables : explode(',',$tables);
  36.     }
  37.  
  38.     $return = '';
  39.     //cycle through
  40.     foreach($tables as $table)
  41.     {
  42.         $result = mysqli_query($link, 'SELECT * FROM '.$table);
  43.         $num_fields = mysqli_num_fields($result);
  44.         $num_rows = mysqli_num_rows($result);
  45.  
  46.         $return.= 'DROP TABLE IF EXISTS '.$table.';';
  47.         $row2 = mysqli_fetch_row(mysqli_query($link, 'SHOW CREATE TABLE '.$table));
  48.         $return.= "\n\n".$row2[1].";\n\n";
  49.         $counter = 1;
  50.  
  51.         //Over tables
  52.         for ($i = 0; $i < $num_fields; $i++)
  53.         {   //Over rows
  54.             while($row = mysqli_fetch_row($result))
  55.             {  
  56.                 if($counter == 1){
  57.                     $return.= 'INSERT INTO '.$table.' VALUES(';
  58.                 } else{
  59.                     $return.= '(';
  60.                 }
  61.  
  62.                 //Over fields
  63.                 for($j=0; $j<$num_fields; $j++)
  64.                 {
  65.                     $row[$j] = addslashes($row[$j]);
  66.                     $row[$j] = str_replace("\n","\\n",$row[$j]);
  67.                     if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
  68.                     if ($j<($num_fields-1)) { $return.= ','; }
  69.                 }
  70.  
  71.                 if($num_rows == $counter){
  72.                     $return.= ");\n";
  73.                 } else{
  74.                     $return.= "),\n";
  75.                 }
  76.                 ++$counter;
  77.             }
  78.         }
  79.         $return.="\n\n\n";
  80.     }
  81.  
  82.     //save file
  83.     $fileName = 'db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql';
  84.     $handle = fopen($fileName,'w+');
  85.     fwrite($handle,$return);
  86.     if(fclose($handle)){
  87.         echo "Done, the file name is: ".$fileName;
  88.         exit;
  89.     }
  90. }

pero ahora ando en otro sistema trabajando
  #5 (permalink)  
Antiguo 23/07/2019, 18:50
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: crear un backup mysql con Illuminate

como puedo obtener informacion de los datos de mysql

database, username, password

del config

Código PHP:
Ver original
  1. date_default_timezone_set('America/Chicago');
  2.  
  3. require 'vendor/autoload.php';
  4. include('functions.php');
  5.  
  6. use Philo\Blade\Blade;
  7. use Illuminate\Database\Capsule\Manager as Capsule;
  8.  
  9. $views = __DIR__ . '/views';
  10. $cache = __DIR__ . '/cache';
  11. $template = new Blade($views, $cache);
  12.  
  13. $capsule = new Capsule;
  14. $capsule->addConnection([
  15.     'driver'    => 'mysql',
  16.     'host'      => 'localhost',
  17.     'database'  => 'xxx',
  18.     'username'  => 'xxx',
  19.     'password'  => 'xxx',
  20.     'charset'   => 'utf8',
  21.     'collation' => 'utf8_unicode_ci',
  22.     'prefix'    => '',
  23.     'dump_command_path' => '/mysql/bin',
  24.     'dump_command_timeout' => 60 * 5,
  25.     'dump_using_single_transaction'    => true,
  26. ]);
  27. $capsule->setAsGlobal();
  28. $capsule->bootEloquent();
  #6 (permalink)  
Antiguo 27/07/2019, 07:06
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: crear un backup mysql con Illuminate

Casi lo estoy logrando pero me falta ayuda por favor

Código PHP:
Ver original
  1. $arraynamesexist = [];
  2.     $tables = $capsule::select('SHOW TABLES');
  3.     foreach ($tables as $key => $val) {
  4.         $tableName = (array)$val;
  5.         $tableName = array_shift($tableName);
  6.         array_push($arraynamesexist, $tableName);
  7.     }
  8.    
  9.     $sqlScript = "";
  10.     foreach($arraynamesexist as $table){
  11.        
  12.         $result = $capsule->table($table)->get();
  13.         $columnCount = count($result);
  14.         $sqlScript.= '--';
  15.         $sqlScript.="\n";
  16.         $sqlScript.= '-- Estructura de tabla para la tabla `'.$table.'`';
  17.         $sqlScript.="\n";
  18.         $sqlScript.= '--';
  19.         $sqlScript.="\n";
  20.         $sqlScript.= 'DROP TABLE '.$table.';';
  21.         $sqlScript.= "\nCREATE TABLE ".$table.";\n\n";
  22.         $counter = 1;
  23.        
  24.         for ($i = 0; $i < $columnCount; $i ++) {
  25.             foreach($result[$i] as $key=> $row){
  26.               $num_fields  = count($row);
  27.               if($counter == 1){
  28.                  $sqlScript.= 'INSERT INTO '.$table.' VALUES(';
  29.               } else{
  30.                  $sqlScript.= '(';
  31.               }
  32.               for ($j = 0; $j < $columnCount; $j ++) {
  33.                 //$row[$j] = addslashes($row[$j]);
  34.                 //$row[$j] = str_replace("\n","\\n",$row[$j]);
  35.                 if (isset($row[$j])) {
  36.                     $sqlScript .= '"' . $row[$j] . '"';
  37.                 } else {
  38.                     $sqlScript .= '""';
  39.                 }
  40.                 if ($j < ($columnCount - 1)) {
  41.                     $sqlScript .= ',';
  42.                 }
  43.               }
  44.               $sqlScript .= ");\n";
  45.               ++$counter;
  46.             }
  47.         }
  48.       $sqlScript.="\n";
  49.     }

Etiquetas: backup, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:50.