gpt4 book ai didi

node.js - 如何使用 adonis 更改列类型而不丢失迁移中的数据库数据?

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:48 26 4
gpt4 key购买 nike

我有这门课:

class BookUnitQuestionSchema extends Schema {
up () {
this.create('book_unit_question', (table) => {
table.increments()
table.integer('book_unit_id').references('id').inTable('book_unit')
table.string('correct_answer_description')
table.boolean('status').defaultTo(false)
table.integer('user_id').references('id').inTable('users')
table.timestamps()
})
}

down () {
this.drop('book_unit_question')
}
}

我需要将 Correct_answer_description 列的数据类型更改为 text 。如果我将实际的 up() 方法更改为:

table.text('correct_answer_description')

并创建:adonis migration:refresh

所有表都已重新创建,我丢失了该表中的数据。

如何只更改数据类型而不丢失数据?

我尝试这样的事情:

this.alter('book_unit_question', (table) => {
table.text('correct_answer_description')
})

并制作:

adonis migration:run

但是我得到:

Nothing to migrate

最佳答案

您需要创建一个新的迁移文件,例如:

adonis make:migration ...

类型修改(新迁移文件):.alter()

class BookUnitQuestionSchema extends Schema {
up() {
this.alter('book_unit_questions', (table) => {
table.text('correct_answer_description').notNullable().alter();
})
}

// reverse modification
down() {
this.table('book_unit_questions', (table) => {
table.string('correct_answer_description').notNullable().alter();
})
}
}

并运行挂起的迁移:

> adonis migration:run

关于node.js - 如何使用 adonis 更改列类型而不丢失迁移中的数据库数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58801901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com