【发布时间】:2018-04-05 02:12:16
【问题描述】:
我可以使用 sequelize 从可用模型创建数据库架构吗?我在一个缺少许多迁移且没有测试的项目上工作。要运行测试,我需要创建一个新的数据库(sqlite3),但我无法使用迁移初始化其架构(因为它们丢失了)。是否可以使用模型来创建架构?
【问题讨论】:
标签: sequelize.js database-schema
我可以使用 sequelize 从可用模型创建数据库架构吗?我在一个缺少许多迁移且没有测试的项目上工作。要运行测试,我需要创建一个新的数据库(sqlite3),但我无法使用迁移初始化其架构(因为它们丢失了)。是否可以使用模型来创建架构?
【问题讨论】:
标签: sequelize.js database-schema
是的。如果您只是在应用程序中同步 sequelize,模型将为您创建数据库表
【讨论】:
sync 是异步的,所以我不知道该怎么做
是否可以使用模型来创建架构? ...因为我想在 Mocha 配置中执行此操作,所以每当运行任何测试时,我确信它会在最新的测试数据库上运行。但是因为同步是异步的,所以我不知道该怎么做
假设使用了 Sequelize CLI,这里有一种方法可以确保您在任何 mocha 测试中都有更新的数据库:
// Force sync without migrations
// This can be run at the top of every individual test suite
before(function () {
return require('../../models').sequelize.sync({ force: true })
})
路径 '../../models' 指向 Sequelize CLI 为您创建的 models/index.js。
【讨论】:
before 助手,但我更喜欢在 mocha 运行时进行全局同步
mocha-prepare npm 模块。文档很清楚,这是我在 mocha.opts 中需要的同步文件中的代码:prepare((done) => { db.sequelize.sync({ force: true }).then(() => done()); });