sequelize
Version:
Multi dialect ORM for Node.JS/io.js
1,651 lines (1,101 loc) • 119 kB
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<base data-ice="baseUrl" href="../../">
<title data-ice="title">Sequelize | Sequelize | The node.js ORM for PostgreSQL, MySQL, SQLite and MSSQL API Document</title>
<link type="text/css" rel="stylesheet" href="css/style.css">
<link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
<script src="script/prettify/prettify.js"></script>
<script src="script/manual.js"></script>
<link data-ice="userStyle" rel="stylesheet" href="user/css/0-style.css">
</head>
<body class="layout-container" data-ice="rootContainer">
<header>
<a href="./">Home</a>
<a href="identifiers.html">Reference</a>
<a href="source.html">Source</a>
<a data-ice="repoURL" href="https://github.com/sequelize/sequelize.git" class="repo-url-github">Repository</a>
<div class="search-box">
<span>
<img src="./image/search.png">
<span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
</span>
<ul class="search-result"></ul>
</div>
</header>
<nav class="navigation" data-ice="nav"><div>
<ul>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/model.js~Model.html">Model</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html">Sequelize</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/transaction.js~Transaction.html">Transaction</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-DataTypes">DataTypes</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-Deferrable">Deferrable</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-QueryTypes">QueryTypes</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">associations</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/associations/base.js~Association.html">Association</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/associations/belongs-to-many.js~BelongsToMany.html">BelongsToMany</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/associations/belongs-to.js~BelongsTo.html">BelongsTo</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/associations/has-many.js~HasMany.html">HasMany</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/associations/has-one.js~HasOne.html">HasOne</a></span></span></li>
<li data-ice="doc"><div data-ice="dirPath" class="nav-dir-path">errors</div><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~AccessDeniedError.html">AccessDeniedError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~AssociationError.html">AssociationError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~BaseError.html">BaseError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~ConnectionError.html">ConnectionError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~ConnectionRefusedError.html">ConnectionRefusedError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~ConnectionTimedOutError.html">ConnectionTimedOutError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~DatabaseError.html">DatabaseError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~EagerLoadingError.html">EagerLoadingError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~EmptyResultError.html">EmptyResultError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~ExclusionConstraintError.html">ExclusionConstraintError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~ForeignKeyConstraintError.html">ForeignKeyConstraintError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~HostNotFoundError.html">HostNotFoundError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~HostNotReachableError.html">HostNotReachableError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~InstanceError.html">InstanceError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~InvalidConnectionError.html">InvalidConnectionError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~OptimisticLockError.html">OptimisticLockError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~QueryError.html">QueryError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~SequelizeScopeError.html">SequelizeScopeError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~TimeoutError.html">TimeoutError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~UniqueConstraintError.html">UniqueConstraintError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~ValidationError.html">ValidationError</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/lib/errors/index.js~ValidationErrorItem.html">ValidationErrorItem</a></span></span></li>
</ul>
</div>
</nav>
<div class="content" data-ice="content"><div class="header-notice">
<div data-ice="importPath" class="import-path"><pre class="prettyprint"><code data-ice="importPathCode"></code></pre></div>
<span data-ice="access">public</span>
<span data-ice="kind">class</span>
<span data-ice="source">| <span><a href="file/lib/sequelize.js.html#lineNumber31">source</a></span></span>
</div>
<div class="self-detail detail">
<h1 data-ice="name">Sequelize</h1>
<div class="description" data-ice="description"><p>This is the main class, the entry point to sequelize. To use it, you just need to import sequelize:</p>
<pre><code class="lang-js"><code class="source-code prettyprint">const Sequelize = require('sequelize');</code>
</code></pre>
<p>In addition to sequelize, the connection library for the dialect you want to use should also be installed in your project. You don't need to import it however, as sequelize will take care of that.</p>
</div>
</div>
<div data-ice="staticMethodSummary"><h2>Static Method Summary</h2><table class="summary" data-ice="summary">
<thead><tr><td data-ice="title" colspan="3">Static Public Methods</td></tr></thead>
<tbody>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-and">and</a></span></span><span data-ice="signature">(args: <span>String</span> | <span>Object</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-and">and</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>An AND query</p>
</div>
</div>
</td>
<td>
<span class="since" data-ice="since">since v2.0.0-dev3</span>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-cast">cast</a></span></span><span data-ice="signature">(val: <span>any</span>, type: <span>String</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-cast">cast</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Creates a object representing a call to the cast function.</p>
</div>
</div>
</td>
<td>
<span class="since" data-ice="since">since v2.0.0-dev3</span>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-col">col</a></span></span><span data-ice="signature">(col: <span>String</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-col">col</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Creates a object representing a column in the DB.</p>
</div>
</div>
</td>
<td>
<span class="since" data-ice="since">since v2.0.0-dev3</span>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-fn">fn</a></span></span><span data-ice="signature">(fn: <span>String</span>, args: <span>any</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-fn">fn</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Creates a object representing a database function.</p>
</div>
</div>
</td>
<td>
<span class="since" data-ice="since">since v2.0.0-dev3</span>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-json">json</a></span></span><span data-ice="signature">(conditions: <span>String</span> | <span>Object</span>, value: <span>String</span> | <span>Number</span> | <span>Boolean</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-json">json</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Creates an object representing nested where conditions for postgres's json data-type.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-literal">literal</a></span></span><span data-ice="signature">(val: <span>any</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-literal">literal</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Creates a object representing a literal, i.e.</p>
</div>
</div>
</td>
<td>
<span class="since" data-ice="since">since v2.0.0-dev3</span>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-or">or</a></span></span><span data-ice="signature">(args: <span>String</span> | <span>Object</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-or">or</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>An OR query</p>
</div>
</div>
</td>
<td>
<span class="since" data-ice="since">since v2.0.0-dev3</span>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-useCLS">useCLS</a></span></span><span data-ice="signature">(ns: <span>Object</span>): <span>Object</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Use CLS with Sequelize.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-where">where</a></span></span><span data-ice="signature">(attr: <span>Object</span>, comparator: <span>string</span>, logic: <span>String</span> | <span>Object</span>): <span>*</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>A way of specifying attr = condition.</p>
</div>
</div>
</td>
<td>
<span class="since" data-ice="since">since v2.0.0-dev3</span>
</td>
</tr>
</tbody>
</table>
</div>
<div data-ice="constructorSummary"><h2>Constructor Summary</h2><table class="summary" data-ice="summary">
<thead><tr><td data-ice="title" colspan="3">Public Constructor</td></tr></thead>
<tbody>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-constructor-constructor">constructor</a></span></span><span data-ice="signature">(database: <span>String</span>, username: <span>String</span>, password: <span>String</span>, options: <span>Object</span>)</span>
</p>
</div>
<div>
<div data-ice="description"><p>Instantiate sequelize with name of database, username and password</p>
</div>
</div>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
<div data-ice="memberSummary"><h2>Member Summary</h2><table class="summary" data-ice="summary">
<thead><tr><td data-ice="title" colspan="3">Public Members</td></tr></thead>
<tbody>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-member-models">models</a></span></span><span data-ice="signature">: {}</span>
</p>
</div>
<div>
<div data-ice="description"><p>Models are stored here under the name given to <code>sequelize.define</code></p>
</div>
</div>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
<div data-ice="methodSummary"><h2>Method Summary</h2><table class="summary" data-ice="summary">
<thead><tr><td data-ice="title" colspan="3">Public Methods</td></tr></thead>
<tbody>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-authenticate">authenticate</a></span></span><span data-ice="signature">(options: <span>*</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Test the connection by trying to authenticate</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-close">close</a></span></span><span data-ice="signature">()</span>
</p>
</div>
<div>
<div data-ice="description"><p>Close all connections used by this sequelize instance, and free all references so the instance can be garbage collected.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-createSchema">createSchema</a></span></span><span data-ice="signature">(schema: <span>String</span>, options: <span>Object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Create a new database schema.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-define">define</a></span></span><span data-ice="signature">(modelName: <span>String</span>, attributes: <span>Object</span>, options: <span>Object</span>): <span><a href="class/lib/model.js~Model.html">Model</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Define a new model, representing a table in the DB.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-drop">drop</a></span></span><span data-ice="signature">(options: <span>object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Drop all tables defined through this sequelize instance.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-dropAllSchemas">dropAllSchemas</a></span></span><span data-ice="signature">(options: <span>Object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Drop all schemas</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-dropSchema">dropSchema</a></span></span><span data-ice="signature">(schema: <span>String</span>, options: <span>Object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Drop a single schema</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-escape">escape</a></span></span><span data-ice="signature">(value: <span>String</span>): <span>String</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Escape value.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-getDialect">getDialect</a></span></span><span data-ice="signature">(): <span>String</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Returns the specified dialect.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-getQueryInterface">getQueryInterface</a></span></span><span data-ice="signature">(): <span>QueryInterface</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Returns an instance of QueryInterface.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-import">import</a></span></span><span data-ice="signature">(path: <span>String</span>): <span><a href="class/lib/model.js~Model.html">Model</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Imports a model defined in another file</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-isDefined">isDefined</a></span></span><span data-ice="signature">(modelName: <span>String</span>): <span>Boolean</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Checks whether a model with the given name is defined</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-model">model</a></span></span><span data-ice="signature">(modelName: <span>String</span>): <span><a href="class/lib/model.js~Model.html">Model</a></span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Fetch a Model which is already defined</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-query">query</a></span></span><span data-ice="signature">(sql: <span>String</span>, options: <span>Object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Execute a query on the DB, with the possibility to bypass all the sequelize goodness.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-set">set</a></span></span><span data-ice="signature">(variables: <span>Object</span>, options: <span>Object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Execute a query which would set an environment or user variable.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-showAllSchemas">showAllSchemas</a></span></span><span data-ice="signature">(options: <span>Object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Show all defined schemas</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-sync">sync</a></span></span><span data-ice="signature">(options: <span>Object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Sync all defined models to the DB.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-transaction">transaction</a></span></span><span data-ice="signature">(options: <span>Object</span>, autoCallback: <span>Function</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Start a transaction.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
<tr data-ice="target">
<td>
<span class="access" data-ice="access">public</span>
<span class="override" data-ice="override"></span>
</td>
<td>
<div>
<p>
<span data-ice="name"><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-truncate">truncate</a></span></span><span data-ice="signature">(options: <span>object</span>): <span>Promise</span></span>
</p>
</div>
<div>
<div data-ice="description"><p>Truncate all tables defined through the sequelize models.</p>
</div>
</div>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
<div data-ice="staticMethodDetails"><h2 data-ice="title">Static Public Methods</h2>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-and">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">and</span><span data-ice="signature">(args: <span>String</span> | <span>Object</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-and">and</a></span></span>
<span class="right-info">
<span class="since" data-ice="since">since v2.0.0-dev3</span>
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber839">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>An AND query</p>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">args</td>
<td data-ice="type"><span>String</span> | <span>Object</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>Each argument will be joined by AND</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-and">and</a></span></td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
<div data-ice="see"><h4>See:</h4><ul><li><span><span><a href="class/lib/model.js~Model.html#static-method-findAll">Model.findAll</a></span></span></li></ul></div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-cast">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">cast</span><span data-ice="signature">(val: <span>any</span>, type: <span>String</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-cast">cast</a></span></span>
<span class="right-info">
<span class="since" data-ice="since">since v2.0.0-dev3</span>
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber811">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>Creates a object representing a call to the cast function.</p>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">val</td>
<td data-ice="type"><span>any</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>The value to cast</p>
</td>
</tr>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">type</td>
<td data-ice="type"><span>String</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>The type to cast it to</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-cast">cast</a></span></td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-col">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">col</span><span data-ice="signature">(col: <span>String</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-col">col</a></span></span>
<span class="right-info">
<span class="since" data-ice="since">since v2.0.0-dev3</span>
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber797">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>Creates a object representing a column in the DB. This is often useful in conjunction with <code>sequelize.fn</code>, since raw string arguments to fn will be escaped.</p>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">col</td>
<td data-ice="type"><span>String</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>The name of the column</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-col">col</a></span></td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
<div data-ice="see"><h4>See:</h4><ul><li><span><span>Sequelize#fn</span></span></li></ul></div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-fn">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">fn</span><span data-ice="signature">(fn: <span>String</span>, args: <span>any</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-fn">fn</a></span></span>
<span class="right-info">
<span class="since" data-ice="since">since v2.0.0-dev3</span>
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber783">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>Creates a object representing a database function. This can be used in search queries, both in where and order parts, and as default values in column definitions.
If you want to refer to columns in your function, you should use <code>sequelize.col</code>, so that the columns are properly interpreted as columns and not a strings.</p>
<p>Convert a user's username to upper case</p>
<pre><code class="lang-js"><code class="source-code prettyprint">instance.updateAttributes({
username: self.sequelize.fn('upper', self.sequelize.col('username'))
})</code>
</code></pre>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">fn</td>
<td data-ice="type"><span>String</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>The function you want to call</p>
</td>
</tr>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">args</td>
<td data-ice="type"><span>any</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>All further arguments will be passed as arguments to the function</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-fn">fn</a></span></td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
<div data-ice="example">
<h4>Example:</h4>
<div class="example-doc" data-ice="exampleDoc">
<div class="example-caption" data-ice="exampleCaption">Convert a user's username to upper case</div>
<pre class="prettyprint source-code"><code data-ice="exampleCode">instance.updateAttributes({
username: self.sequelize.fn('upper', self.sequelize.col('username'))
})</code></pre>
</div>
</div>
<div data-ice="see"><h4>See:</h4><ul><li><span><span><a href="class/lib/model.js~Model.html#static-method-findAll">Model.findAll</a></span></span></li>
<li><span><span><a href="class/lib/sequelize.js~Sequelize.html#instance-method-define">Sequelize.define</a></span></span></li>
<li><span><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-col">Sequelize.col</a></span></span></li></ul></div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-json">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">json</span><span data-ice="signature">(conditions: <span>String</span> | <span>Object</span>, value: <span>String</span> | <span>Number</span> | <span>Boolean</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-json">json</a></span></span>
<span class="right-info">
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber867">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>Creates an object representing nested where conditions for postgres's json data-type.</p>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">conditions</td>
<td data-ice="type"><span>String</span> | <span>Object</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>A hash containing strings/numbers or other nested hash, a string using dot notation or a string using postgres json syntax.</p>
</td>
</tr>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">value</td>
<td data-ice="type"><span>String</span> | <span>Number</span> | <span>Boolean</span></td>
<td data-ice="appendix"><ul><li>optional</li></ul></td>
<td data-ice="description"><p>An optional value to compare against. Produces a string of the form "<json path> = '<value>'".</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-json">json</a></span></td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
<div data-ice="see"><h4>See:</h4><ul><li><span><span><a href="class/lib/model.js~Model.html#static-method-findAll">Model.findAll</a></span></span></li></ul></div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-literal">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">literal</span><span data-ice="signature">(val: <span>any</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-literal">literal</a></span></span>
<span class="right-info">
<span class="since" data-ice="since">since v2.0.0-dev3</span>
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber825">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>Creates a object representing a literal, i.e. something that will not be escaped.</p>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">val</td>
<td data-ice="type"><span>any</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-literal">literal</a></span></td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-or">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">or</span><span data-ice="signature">(args: <span>String</span> | <span>Object</span>): <span><a href="class/lib/sequelize.js~Sequelize.html#static-method-or">or</a></span></span>
<span class="right-info">
<span class="since" data-ice="since">since v2.0.0-dev3</span>
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber853">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>An OR query</p>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">args</td>
<td data-ice="type"><span>String</span> | <span>Object</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>Each argument will be joined by OR</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span><a href="class/lib/sequelize.js~Sequelize.html#static-method-or">or</a></span></td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
<div data-ice="see"><h4>See:</h4><ul><li><span><span><a href="class/lib/model.js~Model.html#static-method-findAll">Model.findAll</a></span></span></li></ul></div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-useCLS">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">useCLS</span><span data-ice="signature">(ns: <span>Object</span>): <span>Object</span></span>
<span class="right-info">
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber971">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>Use CLS with Sequelize.
CLS namespace provided is stored as <code>Sequelize._cls</code>
and bluebird Promise is patched to use the namespace, using <code>cls-bluebird</code> module.</p>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="name" data-depth="0">ns</td>
<td data-ice="type"><span>Object</span></td>
<td data-ice="appendix"></td>
<td data-ice="description"><p>CLS namespace</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="return-params" data-ice="returnParams">
<h4>Return:</h4>
<table>
<tbody>
<tr>
<td class="return-type" data-ice="returnType"><span>Object</span></td>
<td class="return-desc" data-ice="returnDescription"><p>Sequelize constructor</p>
</td>
</tr>
</tbody>
</table>
<div data-ice="returnProperties">
</div>
</div>
</div>
<div class="detail" data-ice="detail">
<h3 data-ice="anchor" id="static-method-where">
<span class="access" data-ice="access">public</span>
<span data-ice="static">static</span>
<span data-ice="name">where</span><span data-ice="signature">(attr: <span>Object</span>, comparator: <span>string</span>, logic: <span>String</span> | <span>Object</span>): <span>*</span></span>
<span class="right-info">
<span class="since" data-ice="since">since v2.0.0-dev3</span>
<span data-ice="source"><span><a href="file/lib/sequelize.js.html#lineNumber887">source</a></span></span>
</span>
</h3>
<div data-ice="description"><p>A way of specifying attr = condition.</p>
<p>The attr can either be an object taken from <code>Model.rawAttributes</code> (for example <code>Model.rawAttributes.id</code> or <code>Model.rawAttributes.name</code>). The
attribute should be defined in your model definition. The attribute can also be an object from one of the sequelize utility functions (<code>sequelize.fn</code>, <code>sequelize.col</code> etc.)</p>
<p>For string attributes, use the regular <code>{ where: { attr: something }}</code> syntax. If you don't want your string to be escaped, use <code>sequelize.literal</code>.</p>
</div>
<div data-ice="properties"><div data-ice="properties">
<h4 data-ice="title">Params:</h4>
<table class="params">
<thead>
<tr><td>Name</td><td>Type</td><td>Attribute</td><td>Description</td></tr>
</thead>
<tbody>
<tr data-ice="property" data-depth="0">
<td data-ice="