index.js 1.6 KB

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