有没有办法在 typeORM 中自动创建数据库?

lej*_*bah 11 node.js typeorm nestjs

我正在从sequelizeORM迁移到typeORM。在sequelize-cli 中,有一些很好的命令可以删除数据库并创建一个新数据库,例如:

node_modules/.bin/sequelize db:drop
node_modules/.bin/sequelize db:create
node_modules/.bin/sequelize db:migrate
Run Code Online (Sandbox Code Playgroud)

好的,对于 typeORM,我知道如何运行迁移,但我无法在任何地方找到如何自动创建或删除数据库。提前Tnx。

小智 10

您还可以使用typeorm-extension包,来createdrop指定用于连接的数据库,适用于几乎所有数据库驱动程序。该包还解析额外参数charsetcharacterSet额外参数(ENV:TYPEORM_DRIVER_EXTRA)

import {createDatabase} from "typeorm-extension";

(async () => {
    await createDatabase({ifNotExist: true});
   
    await dropDatabase({ifExist: true});

    process.exit(0);
})();
Run Code Online (Sandbox Code Playgroud)

您还可以提供charsetcharacterSet作为函数第一个参数的属性createDatabase()。铁

  • postgres
createDatabase({ifNotExist: true, characterSet: "UTF8"});
Run Code Online (Sandbox Code Playgroud)
  • mysql
createDatabase({ifNotExist: true, charset: "utf8mb4_general_ci", characterSet: "utf8mb4"});
Run Code Online (Sandbox Code Playgroud)

如果您有任何问题或疑虑,请随时联系我或为Github上的代码库做出贡献

  • 在生产中使用此库时要小心,库中任何不需要的更改都可能会清除您的数据库! (5认同)

Mat*_*ias 6

您可以使用 CLI 工具typeorm schema:drop,或者如果您想在每次启动时删除并重新创建数据库,您可以使用

{
...
  dropSchema: true,
...  
  "migrations": [
    "dist/migrations/**/*.js"
  ]
}
Run Code Online (Sandbox Code Playgroud)

您可以在其中进行连接选项并设置迁移路径等。

  • 注意不要在生产环境使用!!! (3认同)
  • 它真的回答了问题吗?创建数据库的方法是什么? (3认同)