Guest User

Untitled

a guest
Feb 2nd, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. import { Sequelize } from "sequelize-typescript";
  2. import { Program } from "./modules/workenv/models/program.model";
  3.  
  4. import { homedir } from "os";
  5. import { join } from "path";
  6.  
  7. let _sequelize: Sequelize;
  8.  
  9. export interface IConnectOptions {
  10. testing?: boolean;
  11. }
  12.  
  13. export const connect = async (options?: IConnectOptions): Promise<void> => {
  14. const { testing } = options;
  15.  
  16. let storagePath = "";
  17. if (testing) {
  18. storagePath = ":memory:";
  19. } else {
  20. storagePath = join(homedir(), "workenv", "workenv.sqlite");
  21. }
  22.  
  23. const sequelize = new Sequelize({
  24. database: "workenv_db",
  25. dialect: "sqlite",
  26. username: "root",
  27. password: "",
  28. operatorsAliases: Sequelize.Op,
  29. storage: storagePath,
  30. logging: false
  31. } as any);
  32.  
  33. sequelize.addModels([Program]);
  34. // sequelize.addModels([__dirname + "/**/*.model.ts"]);
  35.  
  36. let syncOptions = {};
  37. if (testing) {
  38. syncOptions = {
  39. force: true
  40. };
  41. }
  42. await sequelize.sync(syncOptions);
  43. _sequelize = sequelize;
  44. };
  45.  
  46. export const resetDb = async () => {
  47. await _sequelize.sync({ force: true });
  48. };
Add Comment
Please, Sign In to add comment