lib/database/schemaGenerators.js
function (name, type, opts) {
            opts = opts || {};
            this.columns.push(merge({name:name, type:type}, opts));
            if (opts.index) {
                this.index(name);
            }
        }
function (name, type, opts) {
            opts = opts || {};
            this.columns.push(merge({name:name, type:type}, opts));
            if (opts.index) {
                this.index(name);
            }
        }
function ( name , type , opts ) { opts = opts || { } ; this . columns . push ( merge ( { name : name , type : type } , opts ) ) ; if ( opts . index ) { this . index ( name ) ; } }
Add a column with the given name, type, and opts to the DDL.

<pre class="code">
DB.createTable("test", function(){
this.column("num", "integer");
//=> num INTEGER
this.column("name", String, {allowNull : false, "default" : "a");
//=> name varchar(255) NOT NULL DEFAULT 'a'
this.column("ip", "inet");
//=> ip inet
});
</pre>

You can also create columns via method missing, so the following are
equivalent:
<pre class="code">
DB.createTable("test", function(){
this.column("number", "integer");
this.number("integer");
});
</pre>

@param {String|patio.sql.Identifier} name the name of the column
@param type the datatype of the column.
@param {Object} [opts] additional options

@param [opts.default] The default value for the column.
@param [opts.deferrable] This ensure Referential Integrity will work even if
reference table will use for its foreign key a value that does not
exists(yet) on referenced table. Basically it adds
DEFERRABLE INITIALLY DEFERRED on key creation.
@param {Boolean} [opts.index]  Create an index on this column.
@param {String|patio.sql.Identifier} [key] For foreign key columns, the column in the associated table
that this column references.  Unnecessary if this column references the primary key of the
associated table.
@param {Boolean} [opts.allowNull]  Mark the column as allowing NULL values (if true),
or not allowing NULL values (if false).  If unspecified, will default
to whatever the database default is.
@param {String} [opts.onDelete] Specify the behavior of this column when being deleted
("restrict", "cascade", "setNull", "setDefault", "noAction").
@param {String} [opts.onUpdate] Specify the behavior of this column when being updated
Valid options ("restrict", "cascade", "setNull", "setDefault", "noAction").
@param {Boolean} [opts.primaryKey] Make the column as a single primary key column.  This should only
be used if you have a single, non-autoincrementing primary key column.
@param {Number} [opts.size] The size of the column, generally used with string
columns to specify the maximum number of characters the column will hold.
An array of two integers can be provided to set the size and the
precision, respectively, of decimal columns.
@param {String} [opts.unique] Mark the column as unique, generally has the same effect as
creating a unique index on the column.
@param {String} [opts.unsigned] Make the column type unsigned, only useful for integer
columns.
@param {Array} [opts.elements] Available items used for set and enum columns.
Add a column with the given name type and opts to the DDL .