code: @POST
      @Path("{uuid}")
      public Result migrate(@FormParam("description") String desc,
                            @PathParam("uuid") String uuid) {
          MigrationFeature.checkMigrationId(uuid);
          String generatedDesc = (mode.isDev() ? "dev " : "") + "migrate";
          if (StringUtils.isNotBlank(desc)) {
              generatedDesc = desc;
          }
  
          Map<String, Migration> migrations = getMigrations();
          for (String dbName : migrations.keySet()) {
              Migration migration = migrations.get(dbName);
              ScriptInfo info = migration.generate();
              info.setDescription(generatedDesc);
              Flyway flyway = locator.getService(Flyway.class, dbName);
              flyway.setBaselineDescription(info.getDescription());
              flyway.setBaselineVersionAsString(info.getRevision());
              flyway.setValidateOnMigrate(false);
  
              try {
                  flyway.migrate();
                  migration.persist();
                  migration.reset();
              } catch (Throwable err) {
                  if (failMigrations == null) {
                      synchronized (this) {
                          if (failMigrations == null) {
                              failMigrations = Maps.newHashMap();
                          }
                      }
                  }
                  failMigrations.put(dbName, MigrationFail.create(flyway, err, migration));
              }
          }
          if (failMigrations == null || failMigrations.isEmpty()) {
              return Result.success();
          } else {
              return Result.failure();
          }
      }
docs: <p>migrate.</p>
  
  @param desc a {@link java.lang.String} object.
  @param uuid a {@link java.lang.String} object.
  @return a {@link ameba.util.Result} object.