Exemple #1
0
 public static function cmd_database()
 {
     \System\Init::full();
     $db_list = \System\Settings::get('database', 'list');
     foreach ($db_list as $db_ident => $db_cfg) {
         $size = \System\Database::query("\n\t\t\t\t\tSELECT\n\t\t\t\t\t\t\tsum(data_length + index_length) 'size',\n\t\t\t\t\t\t\tsum( data_free ) 'free'\n\t\t\t\t\t\tFROM information_schema.TABLES\n\t\t\t\t\t\tWHERE table_schema = '" . $db_cfg['database'] . "'\n\t\t\t\t\t\tGROUP BY table_schema;\n\t\t\t\t")->fetch();
         $mlast_date = false;
         $mcount = 0;
         try {
             $mig = \System\Database\Migration::get_new();
             $mcount = count($mig);
             $stat = "Ok";
             $mlast = \System\Database\Migration::get_first()->where(array("status" => 'ok'))->sort_by("updated_at DESC")->fetch();
             if ($mlast) {
                 $mlast_date = $mlast->updated_at;
             }
         } catch (System\Error $e) {
             $stat = "Migrating database is necessary.";
         }
         \Helper\Cli::out('Database ' . $db_ident);
         \Helper\Cli::sep();
         \Helper\Cli::out_flist(array("list" => array("Driver" => $db_cfg['driver'], "Host name" => $db_cfg['host'], "Database name" => $db_cfg['database'], "User" => $db_cfg['username'], "Used charset" => $db_cfg['charset'], "Lazy driver" => $db_cfg['lazy'] ? 'yes' : 'no', "Size" => \System\Template::convert_value('information', $size['size']), "Free space" => \System\Template::convert_value('information', $size['free']), "Structure" => $stat, "Last migrated" => $mlast_date ? $mlast_date->format('Y-m-d H:i:s') : 'never', "New migrations" => $mcount)));
     }
 }
Exemple #2
0
 /** Format and translate datetime format
  * @param DateTime|int|null $date      Date to format. Takes current time if null.
  * @param string            $format    Format name or format directly
  * @param int               $translate 0 for no translation, 1 for standart translation, 2 for special translation
  * @return string
  */
 public function format_date($date, $format = 'std', $translate = self::TRANS_STD)
 {
     if (\System\Template::is_date($date)) {
         if (is_null($date)) {
             $date = new \DateTime();
         } elseif (is_numeric($date)) {
             $helper = new \DateTime();
             $helper->setTimestamp($date);
             $date = $helper;
         }
         $local_format = $this->trans('date-format-' . $format);
         $d = $date->format(is_null($local_format) ? $format : $local_format);
         if ($translate == self::TRANS_NONE) {
             return $d;
         } else {
             return $this->translate_date($d, $translate == self::TRANS_INF);
         }
     } else {
         throw new \System\Error\Argument(sprintf("Method format_date accepts only date type arguments. Instance of DateTime or utime number. '%s' was given.", gettype($date)));
     }
 }
Exemple #3
0
 public function cmd_dump(array $params = array())
 {
     \System\Init::full();
     $file = array_shift($params);
     if ($this->json) {
         \System\Loader::load_all();
         $models = \System\Model\Database::get_all_children();
         $data = array();
         \Helper\Cli::do_over($models, function ($key, $model, &$data) {
             $objects = $model::get_all()->fetch();
             if (any($objects)) {
                 $data[$model] = \System\Template::to_json($objects, false);
             }
         }, null, $data, !is_null($file));
         if ($file) {
             \System\Json::put($file, $data);
         } else {
             echo json_encode($data);
         }
     } else {
         $cmd = self::assemble_mysql_command("mysqldump", true);
         if ($file) {
             shell_exec("mkdir -m775 -p " . dirname($file));
             $cmd .= " > " . $file;
         }
         passthru($cmd);
     }
 }