Adonis migration:fresh 命令重建数据库和种子

Adonis migration:fresh command to recreate database and seed

Laravel 有一个命令 php artisan migrate:fresh,“从数据库中删除所有表,然后执行迁移命令”。

在编写一些新的迁移代码时,有时我们需要从头开始迁移数据库。

运行 refresh and reset 依赖所有down方法都可以,但是在开发的时候,有时候还没准备好降级

因此,拥有一个 migration:fresh 将有助于真正重新创建架构。

我已经创建了一个命令 MigrationFresh.js,它现在可以像 mysql 和 pg 那样工作。

安装后,您必须调用它从头开始重新创建数据库并迁移:

adonis migration:fresh

如果你想在迁移后播种,运行:

adonis migration:fresh --seed

为了在 adonis 5 中更容易地做到这一点,我们可以通过以下方式创建一个新命令 node ace make:command MigrationFresh

然后添加代码

public async run() {
    await execa.node('ace',['migration:rollback'])
    console.log('Rollback all tables')
    await execa.node('ace',['migration:run'])
    console.log('Migrated all tables')
}