2

I'm trying to use sequelize with typescript, but don't know how. I installed a package named sequelize-cli-typescript, but it does not work with sequelize v6. And I know it is better to use migrations to perform my database. How can I do that?

Hadi Ahmadi
  • 469
  • 1
  • 3
  • 10

2 Answers2

5

Use umzug. It powers sequelize cli.

AlfredoRevilla-MSFT
  • 3,171
  • 1
  • 12
  • 18
4

You pretty much need to transpile your code into javascript if you're going to use migrations, because sequelize-cli doesn't know anything about typescript. We compile our stuff to ./dist right before running npx sequelize-cli db:migrate via npx tsc -p . with a tsconfig.json file that has these lines:

{
  "compilerOptions": {
    "target": "es6",
    // ...
    "outDir": "dist",
    // ...
  }
}

The .sequelizerc file (which is used by sequelize-cli only) will also point to dist, e.g.:

const path = require('path');

module.exports = {
   'config': path.resolve('./dist/src/config', 'config.js'),
   'models-path': path.resolve('./dist/src/db', 'models'),
   'seeders-path': path.resolve('./dist/src/db', 'seeders'),
   'migrations-path': path.resolve('./dist/src/db', 'migrations')
}
mikebridge
  • 4,209
  • 2
  • 40
  • 50
  • gives me this Error: Cannot find module 'babel-plugin-module-resolver' https://stackoverflow.com/questions/74231128/error-running-sequelize-seeder-on-typescript-based-setup – PirateApp Oct 28 '22 at 06:53