我正在尝试将sequelize与typescript一起使用,但不知道如何操作。 我安装了一个名为sequelize-cli-typescript 的软件包,但它不适用于sequelize v6。 我知道最好使用迁移来执行我的数据库。我怎样才能做到这一点?
如果要使用迁移,您几乎需要将代码转换为 javascript,因为sequelize-cli 不了解 typescript。我们在通过
./dist
运行 npx sequelize-cli db:migrate
之前将我们的内容编译为 npx tsc -p .
,并使用包含以下几行的 tsconfig.json
文件:
{
"compilerOptions": {
"target": "es6",
// ...
"outDir": "dist",
// ...
}
}
.sequelizerc
文件(仅由sequelize-cli使用)也将指向dist,例如:
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')
}
使用umzug。它为续集 cli 提供动力。
我为此使用了稍微不同的方法。我写了一篇关于 Configuring Sequelize CLI & typescript 的博客,您可以查看我的博客以了解更多详细信息。
重要的部分是在
sequelize.config.js
文件中添加以下行
require('ts-node/register');
这使得 Sequelize 在运行迁移或其他 cli 内容时能够理解
.ts
文件。
注意:这仍会为您的迁移生成
.js
文件,您必须手动更改/更新这些文件。