1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /* global WIKI */
- exports.up = async knex => {
- await knex('authentication').where('isEnabled', false).del()
- // -> Knex bug #3855 workaround
- // -> https://github.com/knex/knex/pull/3855
- if (WIKI.config.db.type === 'mssql') {
- await knex.schema.raw(`
- DECLARE @constraint varchar(100) = (SELECT default_constraints.name
- FROM sys.all_columns
- INNER JOIN sys.tables
- ON all_columns.object_id = tables.object_id
- INNER JOIN sys.schemas
- ON tables.schema_id = schemas.schema_id
- INNER JOIN sys.default_constraints
- ON all_columns.default_object_id = default_constraints.object_id
- WHERE schemas.name = 'dbo'
- AND tables.name = 'authentication'
- AND all_columns.name = 'isEnabled')
- IF @constraint IS NOT NULL EXEC('ALTER TABLE authentication DROP CONSTRAINT ' + @constraint)`)
- }
- await knex.schema
- .alterTable('authentication', table => {
- table.dropColumn('isEnabled')
- table.integer('order').unsigned().notNullable().defaultTo(0)
- table.string('strategyKey').notNullable().defaultTo('')
- table.string('displayName').notNullable().defaultTo('')
- })
- // Fix pre-2.5 strategies
- const strategies = await knex('authentication')
- let idx = 1
- for (const strategy of strategies) {
- await knex('authentication').where('key', strategy.key).update({
- strategyKey: strategy.key,
- order: (strategy.key === 'local') ? 0 : idx++
- })
- }
- }
- exports.down = knex => { }
|