ActiveRecord(来自Rails)和Sequelize(另一个node.js ORM)都提供了一种初始化数据库的方法,从模型定义中创建表结构。Rails通过rails db:schema:load
命令执行此操作,而Sequelize具有执行相同操作的sync()
方法。通过使用这种方法,我们不需要运行整个应用程序的迁移堆栈来启动新的数据库,也不需要在项目存储库中保存SQL转储。
出于这个背景,我希望Bookshelf.js或Knex.js拥有某种类似功能,但我在两个项目的文档中都找不到它。
然后我决定查看Ghost博客引擎的源代码,该引擎使用Bookshelf,我发现他们在自己的代码库中处理数据库初始化:
- https://github.com/TryGhost/Ghost/blob/e40290a/core/server/data/schema/schema.js
- https://github.com/TryGhost/Ghost/blob/e40290a/core/server/data/migration/populate.js
- https://github.com/TryGhost/Ghost/blob/e40290a/core/server/data/schema/commands.js
在Bookshelf上加载数据库模式的常见做法、插件或库有哪些推荐的?