knex/lib/schemainterface.js
2013-09-17 07:15:18 -04:00

69 lines
1.8 KiB
JavaScript

// Schema Interface
// -------
(function(define) {
"use strict";
define(function(require, exports) {
// The SchemaInterface are the publically accessible methods
// when creating or modifying an existing schema, Each of
// these methods are mixed into the `knex.schema` object,
// and pass-through to creating a `SchemaBuilder` instance,
// which is used as the context of the `this` value below.
var SchemaInterface = {
// Modify a table on the schema.
table: function(callback) {
this.callback(callback);
return this._setType('table');
},
// Create a new table on the schema.
createTable: function(callback) {
this._addCommand('createTable');
this.callback(callback);
return this._setType('createTable');
},
// Drop a table from the schema.
dropTable: function() {
this._addCommand('dropTable');
return this._setType('dropTable');
},
// Drop a table from the schema if it exists.
dropTableIfExists: function() {
this._addCommand('dropTableIfExists');
return this._setType('dropTableIfExists');
},
// Rename a table on the schema.
renameTable: function(to) {
this._addCommand('renameTable', {to: to});
return this._setType('renameTable');
},
// Determine if the given table exists.
hasTable: function() {
this.bindings.push(this.table);
this._addCommand('tableExists');
return this._setType('tableExists');
},
// Determine if the column exists
hasColumn: function(column) {
this.bindings.push(this.table, column);
this._addCommand('columnExists');
return this._setType('columnExists');
}
};
exports.SchemaInterface = SchemaInterface;
});
})(
typeof define === 'function' && define.amd ? define : function (factory) { factory(require, exports); }
);