【发布时间】:2020-11-06 11:35:39
【问题描述】:
我正在尝试通过 Sequelize.js ORM 使用 sqlite3 初始化数据库。我已经定义了我的三个模型(我们称它们为 model1、model2 和 model3,现在我正在处理一个将初始化和同步我的数据库的 js 文件。
dbInit.js 看起来像这样:
const Sequelize = require('../node_modules/sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'sqlite',
logging: false,
storage: 'database.sqlite',
});
// importing the modules
// import() is deprecated and will throw an error!
sequelize.import('models/model1');
sequelize.import('models/model2');
sequelize.import('models/model3');
// if force == true this will create the table, dropping it first if it already existed.
const force = process.argv.includes('--force') || process.argv.includes('-f');
// sync the database
sequelize.sync({ force }).then(async() => {
console.log('dbInit.js: Database synced');
sequelize.close();
}).catch(console.error);
当我运行此文件时,我发现以下错误:TypeError: sequelize.import is not a function。这个错误很清楚,import不是函数!这使我在 Sequelize 文档中发现了 this page,其中说明了以下内容:
已弃用:sequelize.import
注意:您不应使用 sequelize.import。请使用 require 代替。
考虑到这一点,这是我的主要问题:
1:我如何告诉 Sequelize 在初始化期间将哪些模型包含在我的数据库中? 文档很清楚,我应该“只使用require”。但是文档没有提供新约定的明确示例。
2:如何正确使用 require 来包含模型?
我无法找到有关其工作原理的示例。我是 JS 新手,所以这可能非常明显,因此缺乏示例。我想我们可以做类似const model1 = require(path/to/model1); 的事情,然后我可以把它插入同步功能吗?
【问题讨论】:
-
这能回答你的问题吗? sequelize.import is not a function
标签: javascript node.js sqlite sequelize.js discord.js