Adonis 迁移以删除唯一约束
Adonis migration to drop unique constraint
我正在做一个 Adonis JS 项目。我想做相当于 ALTER TABLE products DROP CONSTRAINT unique_col_id
的事情,其中 unique_col_id
负责 products.sku
是唯一的。
我在 AdonisJS 中尝试过 database/migrations/filename.js
:
'use strict'
/** @type {import('@adonisjs/lucid/src/Schema')} */
const Schema = use('Schema')
class ProductsAlterUniqueSkuSchema extends Schema {
up () {
this.alter('products', (table) => {
// alter table
table.integer('sku').unique(false);
})
}
down () {
this.table('products', (table) => {
// reverse alternations
})
}
}
module.exports = ProductsAlterUniqueSkuSchema
但是我收到错误 Error: Duplicate column name 'sku'
。我如何告诉 AdonisJS 迁移脚本更改 table 模式以删除约束?
你需要放弃 uniqueIndex
。您不能使用 .alter()
.
更改它
因此,对于您的解决方案,代码如下:
'use strict'
/** @type {import('@adonisjs/lucid/src/Schema')} */
const Schema = use('Schema')
class ProductsAlterUniqueSkuSchema extends Schema {
up () {
this.alter('products', (table) => {
// alter table
table.dropUnique('sku')
})
}
down () {
this.table('products', (table) => {
// reverse alternations (check your first migration, and just repeat)
table.integer('sku').unique()
})
}
}
module.exports = ProductsAlterUniqueSkuSchema
我正在做一个 Adonis JS 项目。我想做相当于 ALTER TABLE products DROP CONSTRAINT unique_col_id
的事情,其中 unique_col_id
负责 products.sku
是唯一的。
我在 AdonisJS 中尝试过 database/migrations/filename.js
:
'use strict'
/** @type {import('@adonisjs/lucid/src/Schema')} */
const Schema = use('Schema')
class ProductsAlterUniqueSkuSchema extends Schema {
up () {
this.alter('products', (table) => {
// alter table
table.integer('sku').unique(false);
})
}
down () {
this.table('products', (table) => {
// reverse alternations
})
}
}
module.exports = ProductsAlterUniqueSkuSchema
但是我收到错误 Error: Duplicate column name 'sku'
。我如何告诉 AdonisJS 迁移脚本更改 table 模式以删除约束?
你需要放弃 uniqueIndex
。您不能使用 .alter()
.
因此,对于您的解决方案,代码如下:
'use strict'
/** @type {import('@adonisjs/lucid/src/Schema')} */
const Schema = use('Schema')
class ProductsAlterUniqueSkuSchema extends Schema {
up () {
this.alter('products', (table) => {
// alter table
table.dropUnique('sku')
})
}
down () {
this.table('products', (table) => {
// reverse alternations (check your first migration, and just repeat)
table.integer('sku').unique()
})
}
}
module.exports = ProductsAlterUniqueSkuSchema