文件名
文件名遵循以下结构:
[identifier]-[name].js
for example:
20201202A-my-custom-migration.js
结构
迁移必须导出 up
和 down
函数。 这些函数获得一个 Knex 实例,几乎可以用来做任何事情。
js
module.exports = {
async up(knex) {
await knex.schema.createTable('test', (table) => {
table.increments()
table.string('rijk')
})
},
async down(knex) {
await knex.schema.dropTable('test')
},
}
看到这些迁移有点混战,你真的会损害你的数据库。 在添加这些迁移之前,请确保您知道自己在做什么并备份数据库。
迁移和 Directus 架构
迁移可用于管理 Directus 集合的内容(例如初始水合作用)。 为此,您必须确保架构在运行迁移之前是最新的。 实现它的一种方法是选择退出默认的“directus bootstrap”进程并运行:
bash
npx directus database install
# notice that schema is applied before running migrations
npx directus schema apply ./path/to/snapshot.yaml
npx directus database migrate:latest
您可能想要添加额外的步骤来反映 directus bootstrap
的其他职责。