code: function (name) {
              if (Array.isArray(name)) {
                  return this.__compositePrimaryKey.apply(this, arguments);
              } else {
                  var args = argsToArray(arguments, 1), type;
                  var opts = args.pop();
                  this.__primaryKey = merge({}, this.db.serialPrimaryKeyOptions, {name:name}, opts);
                  if (isDefined((type = args.pop()))) {
                      merge(opts, {type:type});
                  }
                  merge(this.__primaryKey, opts);
                  return this.__primaryKey;
              }
          }
docs: Adds an auto-incrementing primary key column or a primary key constraint to the DDL.
  To create a constraint, the first argument should be an array of columns
  specifying the primary key columns. To create an auto-incrementing primary key
  column, a single column can be used. In both cases, an options hash can be used
  as the second argument.
  
  If you want to create a primary key column that is not auto-incrementing, you
  should not use this method.  Instead, you should use the regular {@link patio.SchemaGenerator#column}
  method with a {primaryKey : true} option.
  
  @example
  db.createTable("airplane_type", function () {
  this.primaryKey("id");
  //=> id integer NOT NULL PRIMARY KEY AUTOINCREMENT
  this.name(String, {allowNull:false});
  this.max_seats(Number, {size:3, allowNull:false});
  this.company(String, {allowNull:false});
  });