API Reference Source

lib/dialects/sqlite/index.js

  1. 'use strict';
  2.  
  3. const _ = require('lodash');
  4. const AbstractDialect = require('../abstract');
  5. const ConnectionManager = require('./connection-manager');
  6. const Query = require('./query');
  7. const QueryGenerator = require('./query-generator');
  8. const DataTypes = require('../../data-types').sqlite;
  9.  
  10. class SqliteDialect extends AbstractDialect {
  11. constructor(sequelize) {
  12. super();
  13. this.sequelize = sequelize;
  14. this.connectionManager = new ConnectionManager(this, sequelize);
  15. this.QueryGenerator = new QueryGenerator({
  16. _dialect: this,
  17. sequelize
  18. });
  19. }
  20. }
  21.  
  22. SqliteDialect.prototype.supports = _.merge(_.cloneDeep(AbstractDialect.prototype.supports), {
  23. 'DEFAULT': false,
  24. 'DEFAULT VALUES': true,
  25. 'UNION ALL': false,
  26. 'RIGHT JOIN': false,
  27. inserts: {
  28. ignoreDuplicates: ' OR IGNORE',
  29. updateOnDuplicate: ' ON CONFLICT DO UPDATE SET'
  30. },
  31. index: {
  32. using: false,
  33. where: true,
  34. functionBased: true
  35. },
  36. transactionOptions: {
  37. type: true
  38. },
  39. constraints: {
  40. addConstraint: false,
  41. dropConstraint: false
  42. },
  43. joinTableDependent: false,
  44. groupedLimit: false,
  45. JSON: true
  46. });
  47.  
  48. ConnectionManager.prototype.defaultVersion = '3.8.0';
  49. SqliteDialect.prototype.Query = Query;
  50. SqliteDialect.prototype.DataTypes = DataTypes;
  51. SqliteDialect.prototype.name = 'sqlite';
  52. SqliteDialect.prototype.TICK_CHAR = '`';
  53. SqliteDialect.prototype.TICK_CHAR_LEFT = SqliteDialect.prototype.TICK_CHAR;
  54. SqliteDialect.prototype.TICK_CHAR_RIGHT = SqliteDialect.prototype.TICK_CHAR;
  55.  
  56. module.exports = SqliteDialect;
  57. module.exports.SqliteDialect = SqliteDialect;
  58. module.exports.default = SqliteDialect;