首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用控制台日志在Knex迁移中不进行日志记录

使用控制台日志在Knex迁移中不进行日志记录
EN

Stack Overflow用户
提问于 2022-03-31 08:44:38
回答 1查看 296关注 0票数 0

我的问题是:console.log('tableNobject: ', tableNobject)不登录knex迁移。

下面的代码是我尝试过的:

代码语言:javascript
复制
// 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);
  });
}

但是,我的终端输出如下:

代码语言:javascript
复制
Migration Starting ...
Migrated
Migration Done.

这些日志来自我们调用database.migrate.latest()的迁移脚本

上面代码的预期终端输出如下所示:

代码语言:javascript
复制
Migration Starting ...
tableNobject: [
  {
    id: 'randomId'
    someData: 'someDataString'
    ...
  },
  ...
]
Migrated
Migration Done.

我知道您可以从knex获得日志记录表,因为当我在迁移流之外设置一个测试脚本时,我可以在没有问题的情况下记录该表。

我尝试了以下设置:

代码语言:javascript
复制
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)
    },
  }
};

上面的不同设置不给我在终端的日志记录,因为我想。

基本设置(我不知道这是否提供了附加值):

代码语言:javascript
复制
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,
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-01 09:23:55

所以我的console.log没有日志的原因是因为迁移是TypeScript文件。

我忘记运行命令:npm run build-ts-backed:watch

因此,解决办法比眼前的问题容易得多。在使用TypeScript进行测试时,请记住运行TypeScript编译器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71689488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档