我的问题是:console.log('tableNobject: ', tableNobject)不登录knex迁移。
下面的代码是我尝试过的:
// solution A
export async function up(knex: Knex) {
const tableAobject = await knex.select('*').from('tableAobject');
console.log('tableAobject: ', tableAobject);
}
// solution B
export async function up(knex: Knex) {
await knex.select('*').from('tableBobject').then((tableBobject) => {
console.log('tableBobject: ', tableBobject);
});
}但是,我的终端输出如下:
Migration Starting ...
Migrated
Migration Done.这些日志来自我们调用database.migrate.latest()的迁移脚本
上面代码的预期终端输出如下所示:
Migration Starting ...
tableNobject: [
{
id: 'randomId'
someData: 'someDataString'
...
},
...
]
Migrated
Migration Done.我知道您可以从knex获得日志记录表,因为当我在迁移流之外设置一个测试脚本时,我可以在没有问题的情况下记录该表。
我尝试了以下设置:
const configA = {
...
debug: true,
}
const configB = {
...
log: {
warn(message) {
console.log(message)
},
error(message) {
console.log(message)
},
deprecate(message) {
console.log(message)
},
debug(message) {
console.log(message)
},
}
}
const configC = {
...
debug: true,
log: {
warn(message) {
console.log(message)
},
error(message) {
console.log(message)
},
deprecate(message) {
console.log(message)
},
debug(message) {
console.log(message)
},
}
};上面的不同设置不给我在终端的日志记录,因为我想。
基本设置(我不知道这是否提供了附加值):
const config = {
client: 'postgresql',
connection: {
host: '127.0.0.1',
port: '5432',
database: 'projectName_develop',
user: 'user',
password: 'dev',
},
pool: {
min: 2,
max: 10,
},
migrations: {
tableName: 'knex_migrations',
directory: path.join(__dirname, 'migrations'),
},
seeds: {
directory: path.join(__dirname, 'seeds'),
},
asyncStackTraces: true,
};发布于 2022-04-01 09:23:55
所以我的console.log没有日志的原因是因为迁移是TypeScript文件。
我忘记运行命令:npm run build-ts-backed:watch
因此,解决办法比眼前的问题容易得多。在使用TypeScript进行测试时,请记住运行TypeScript编译器。
https://stackoverflow.com/questions/71689488
复制相似问题