code: public static function ensureTable(array $mapping) : bool
      {
          $database = Database::get($mapping['config']['database']);
          $statement = 'CREATE TABLE IF NOT EXISTS _stray_migration (';
          $statement .= 'date TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, ';
          $statement .= 'migration VARCHAR(255)';
          $statement .= ')';
          $statement = $database->getMasterLink()->prepare($statement);
          if ($statement->execute() === false) {
              echo 'Can\'t create _stray_migration (' . $statement->errorInfo()[2] . ')' . PHP_EOL;
              return false;
          }
          $select = new Select($mapping['config']['database'], true);
          $select->select('COUNT(*) as count')
              ->from('_stray_migration');
          if ($select->execute() === false) {
              echo 'Can\'t fetch from _stray_migration (' . $select->getErrorMessage() . ')' . PHP_EOL;
              return false;
          }
          if ($select->fetch()['count'] == 0) {
              $insert = new Insert($mapping['config']['database']);
              $insert->into('_stray_migration');
              if ($insert->execute() === false) {
                  echo 'Can\'t insert into _stray_migration (' . $insert->getErrorMessage() . ')' . PHP_EOL;
                  return false;
              }
          }
          return true;
      }
docs: Ensure the migrations table exist for specified mapping.
  
  @param array $mapping mapping definition
  @return bool true if successful