code: function askForColumnName(done) {
      const validateColumnName = dbh.validateColumnName;
      const defaultAnswer = this.field.dbhColumnName || this.field.fieldNameAsDatabaseColumn || this.field.dbhColumnName;
  
      const prompts = [
          {
              type: 'input',
              name: 'dbhColumnName',
              validate: ((input) => {
                  const prodDatabaseType = this.jhipsterAppConfig.prodDatabaseType;
                  return validateColumnName(input, prodDatabaseType);
              }),
              message: `What column name do you want for the field "${this.field.fieldName}" ?`,
              default: defaultAnswer
          }
      ];
  
      this.prompt(prompts).then((props) => {
          this.field.columnNameInput = props.dbhColumnName;
  
          // push just processed item
          this.columnsInput.push(this.field);
          // pop item for next recursion
          this.field = this.fieldsPile.shift();
  
          if (this.field !== undefined) {
              askForColumnName.call(this, done);
          } else {
              done();
          }
      });
  }
docs: Use ${this.field} which is set either by askForColumnsName or previous recursive call
  
  Ask the column name for the field of an entity
  This function use ${this.fieldsPile}, at each call it will pop an item from it and ask its question about it.
  Then it will associate the answer with this item and push it to ${this.columnsInput}.
  So at the end of the recursion, ${this.fieldsPile} will be empty and this.columnsInput full with what was in the former.