记录Sequelize Migrations

Bra*_*son 3 sequelize.js

刚开始使用Sequelize并试图让迁移工作,并希望看到迁移实际上针对数据库运行的SQL.

我发现了一个github注释,建议如何将日志记录传递给调试模块,但是我在哪里放置"选项".

options: {
  logging: debug('sequelize')
}
Run Code Online (Sandbox Code Playgroud)

Ron*_*ite 8

启用"logging":在配置连接数据库(文件data_base.json)中为true.

{
    "username": "postgres",
    "password": "postgres",
    "database": "agencias",
    "host": "127.0.0.1",
    "dialect": "postgres",
    "timezone": "America/La_Paz",

    "migrationStorage": "sequelize",
    "migrationStorageTableName": "sequelize_migration",
    "logging":true,
    "pool": {
        "max": 15,
        "min": 0,
        "idle": 10000
    }
}
Run Code Online (Sandbox Code Playgroud)

在项目中执行

sequelize db:migrate --migrations-path src/migrations --config data_base.json
Run Code Online (Sandbox Code Playgroud)


小智 6

有几个可能的地方可以添加这个以进行续集。在.sequelizerc,如果你想看到所有日志记录sequelize CLI(见文档)。如果您只想查看向上/向下迁移中的特定查询,那么您可以将它作为options 的一部分传递给每个 queryInterface 调用。

例如,createTable你可以这样做:

queryInterface.createTable('myNewTable', {
        'my_column': Sequelize.STRING
    }, {
        logging: console.log
});
Run Code Online (Sandbox Code Playgroud)


wdp*_*phd 5

Sequelize CLI 将定义的配置传递config/config.js给sequelize 构造函数。运行时使用以下命令记录 SQL 查询sequelize db:migrate

'use strict';

module.exports = {
    development: {
        host: process.env.MSSQL_SERVER || 'localhost',
        username: process.env.MSSQL_USER || 'MSSQL_USER',
        password: process.env.MSSQL_USER_PASS || 'MSSQL_PASS',
        database: process.env.MSSQL_DB || 'DATABASE_NAME',
        dialect: process.env.DIALECT || 'mssql',
        logging: console.log
    }
};
Run Code Online (Sandbox Code Playgroud)


cfo*_*erg 1

options对象是 Sequelize 构造函数的第四个参数(此处的文档)。options.logging默认为console.log. 我还没有使用过迁移,所以我不确定是否使用了这个选项,但它应该很容易测试。

快速说明一下,您通常还会将此对象中的许多其他选项传递给 Sequelize,而不仅仅是日志记录函数(请参阅示例选项对象此处的示例选项对象)。

我对它并不熟悉,但 Sequelize 文档还建议将Umzug作为一个用于执行和记录迁移任务的库。