如何使用 Sequelize.js ORM 正确迁移 sqlite3 数据库?

4 sqlite node.js sequelize.js

似乎sequelize没有连接/打开我的项目根目录中的 sqlite3 数据库文件。该sequelize -m命令的输出表明一切都已迁移得很好,但 sqlite3 数据库文件仍为空。

配置.json

{
  "development": {
    "username": null,
    "password": null,
    "database": "main",
    "host": "localhost",
    "dialect": "sqlite",
    "storage": "../data.sqlite3"
  }
}
Run Code Online (Sandbox Code Playgroud)

20140814210910-createUsersTable.js(迁移文件)

'use strict';

module.exports = {
  up: function (migration, DataTypes, done) {
    migration.createTable('users', {
      id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
      },
      createdAt: {
        type: DataTypes.DATE
      },
      updatedAt: {
        type: DataTypes.DATE
      },
      email: {
        type: DataTypes.STRING
      },
      password: {
        type: DataTypes.STRING
      }
    }).complete(done);
  },
  down: function (migration, DataTypes, done) {
    migration.dropTable('users').complete(done);
  }
};
Run Code Online (Sandbox Code Playgroud)

端子输出

$ sequelize -m
Loaded configuration file "config/config.json".
Using environment "development".
Loaded configuration file "config/config.json".
Using environment "development".
Running migrations...
20140814210910-createUsersTable.js
Completed in 18ms
Run Code Online (Sandbox Code Playgroud)

文件夹结构

|-.
   |-bin
   |-config
   |--config.json
   |-migrations
   |--20140814210910-createUsersTable.js
   |-node_modules
   |-server
   |-tests
   |-data.sqlite3
Run Code Online (Sandbox Code Playgroud)

小智 5

错误是storagein的路径值config.json

编辑config.json阅读:

{
  "development": {
    "dialect": "sqlite",
    "storage": "data.sqlite3"
  }
}
Run Code Online (Sandbox Code Playgroud)

它起作用了。