123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- var sqlite3
- , Utils = require("../../utils")
- , Query = require("./query")
- module.exports = (function() {
- var ConnectorManager = function(sequelize, config) {
- this.sequelize = sequelize
- this.config = config
- if (config.dialectModulePath) {
- sqlite3 = require(config.dialectModulePath).verbose()
- } else {
- sqlite3 = require('sqlite3').verbose()
- }
- }
- Utils._.extend(ConnectorManager.prototype, require("../connector-manager").prototype)
- ConnectorManager.prototype.connect = function() {
- var emitter = new (require('events').EventEmitter)()
- , self = this
- , db
- this.database = db = new sqlite3.Database(self.sequelize.options.storage || ':memory:', function(err) {
- if (err) {
- if (err.code === "SQLITE_CANTOPEN") {
- emitter.emit('error', 'Failed to find SQL server. Please double check your settings.')
- }
- }
- if(!err && self.sequelize.options.foreignKeys !== false) {
- // Make it possible to define and use foreign key constraints unless
- // explicitly disallowed. It's still opt-in per relation
- db.run('PRAGMA FOREIGN_KEYS=ON')
- }
- })
- }
- ConnectorManager.prototype.query = function(sql, callee, options) {
- if (!this.database) {
- this.connect()
- }
- return new Query(this.database, this.sequelize, callee, options).run(sql)
- }
- return ConnectorManager
- })()
|