Nodejs typeorm + nest + sqlite, sqlite 文件怎么没更新
Nodejs typeorm + nest + sqlite, sqlite 文件怎么没更新
一脸懵逼,sqlite 文件还是 0b,但实际上代码执行是正常的,重复插入两次会失败。
是配置原因吗?
[@Module](/user/Module)({
imports: [ApiModule, TypeOrmModule.forRoot({
type: 'sqlite',
database: '../sqlite/db',
entities: [ BadgeApp, BadgeModule ],
}),
],
controllers: [AppController],
providers: [AppService],
})
4 回复
文件没找对?
文件缓存吧?
你插入一次然后结束程序就会大小就会变
确实写错路径了
在使用 Node.js、TypeORM、NestJS 和 SQLite 组合开发时,如果发现 SQLite 数据库文件没有更新,可能是由于以下几个原因导致的。以下是一些排查和解决问题的步骤:
-
确认数据库连接配置: 确保你的
ormconfig.json
或相应的 TypeORM 配置文件中 SQLite 数据库文件的路径设置正确。{ "type": "sqlite", "database": "path/to/your/database.sqlite", "synchronize": true, "logging": false, "entities": [ "src/entity/**/*.ts" ], "migrations": [ "src/migration/**/*.ts" ], "subscribers": [ "src/subscriber/**/*.ts" ], "cli": { "entitiesDir": "src/entity", "migrationsDir": "src/migration", "subscribersDir": "src/subscriber" } }
-
检查同步设置: 确保
synchronize
选项设置为true
,这样 TypeORM 会在应用启动时自动同步实体与数据库结构。 -
事务处理: 如果你在使用事务,确保事务被正确提交。
await getManager().transaction(async entityManager => { // your operations here await entityManager.save(yourEntity); });
-
检查错误日志: 开启
logging
选项,查看是否有错误被抛出但未被捕获。 -
重启应用: 有时候,简单地重启你的 Node.js 应用可以解决一些同步问题。
如果以上步骤都无法解决问题,请检查你的代码逻辑,确保数据库操作被正确执行且没有异常被吞没。