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

Posted

技术标签:

【中文标题】如何使用 Sequelize.js ORM 正确迁移 sqlite3 数据库?【英文标题】:How to properly migrate a sqlite3 database using the Sequelize.js ORM? 【发布时间】:2014-10-10 03:22:27 【问题描述】:

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

config.json


  "development": 
    "username": null,
    "password": null,
    "database": "main",
    "host": "localhost",
    "dialect": "sqlite",
    "storage": "../data.sqlite3"
  

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);
  
;

终端输出

$ 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

文件夹结构

|-.
   |-bin
   |-config
   |--config.json
   |-migrations
   |--20140814210910-createUsersTable.js
   |-node_modules
   |-server
   |-tests
   |-data.sqlite3

【问题讨论】:

您可能还想检查基于 SQL 的迁移解决方案,例如SQLite Client for Node.js Apps 【参考方案1】:

错误是config.jsonstorage 的路径值。

编辑config.json阅读:


  "development": 
    "dialect": "sqlite",
    "storage": "data.sqlite3"
  

它成功了。

【讨论】:

以上是关于如何使用 Sequelize.js ORM 正确迁移 sqlite3 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js Sequelize ORM 模型问题

Sequelize JS 自定义查询与子选择

使用EggJS开发接口使用数据库之egg-sequelize

sequelize 中文教程

sequelize.js 中的字母数字 ID

如何在 Sequelize.js 中使用数据库连接池