public static function migrate_all(&$messages)
 {
     $migrations = static::get_migrations();
     $messages = [];
     foreach (Migration::all() as $migration) {
         if (isset($migrations[$migration->hash])) {
             unset($migrations[$migration->hash]);
         }
     }
     $db = Database::instance();
     foreach ($migrations as $key => $info) {
         $message = sprintf('Executing migration: \'%s\' with hash: %s', $info['class'], $key);
         $db->begin();
         try {
             static::resolve($info['file'], $info['class'])->up();
             if (Migration::create(['hash' => $key, 'name' => $info['class']])->saved()) {
                 $messages[] = [$message];
             } else {
                 $messages[] = [$message, 'Failed to save migration to database'];
             }
             $db->commit();
         } catch (Exception $e) {
             $db->rollback();
             $messages[] = [$message, $e->getMessage()];
             return $messages;
         }
     }
     return $messages;
 }
 public function run()
 {
     $faker = Faker::create();
     foreach (range(1, 10) as $index) {
         Migration::create([]);
     }
 }