1

我正在使用adonis js制作网站。我需要通过迁移将某些列添加到现有表中,并在运行“adonis migration:rollback”时删除这些列。如何编写迁移 down() 函数?

我在下面提到的代码adonis make:migration medicines --action=select

'use strict'

/** @type {import('@adonisjs/lucid/src/Schema')} */
const Schema = use('Schema')

class MedicinesSchema extends Schema {
  up () {
    this.alter('medicines', (table) => {
      // alter table
      table.boolean('front_page');
      table.integer( 'brand_id' ).nullable();
      table.integer('offer_id').nullable();

    })
  }

  down () {
    this.table('medicines', (table) => {
      // reverse alternations
      // HOW DO I WRITE THE REVERSALS HERE ?
    })
  }
}

module.exports = MedicinesSchema

提前致谢

4

1 回答 1

2

您可以使用dropColumn()

官方文档示例:https ://knexjs.org/#Schema-table

knex.schema.table('users', function (table) {
  table.dropColumn('name');
  table.string('first_name');
  table.string('last_name');
})

输出:

alter table `users` add `first_name` varchar(255), add `last_name` varchar(255);
alter table `users` drop `name`

阿多尼斯版:

down () {
   this.table('medicines', (table) => {
      table.dropColumn('myColumn');
   })
}

AdonisJS 使用Knex进行数据库查询

于 2020-07-01T18:30:46.623 回答