Browse Source

fix: MSSQL migration 2.5.1

pull/2163/head
NGPixel 4 years ago
parent
commit
b2f292cc39
4 changed files with 23 additions and 4 deletions
  1. 1
      .eslintrc.yml
  2. 2
      client/components/history.vue
  3. 3
      dev/cypress/ci-setup.sh
  4. 21
      server/db/migrations/2.5.1.js

1
.eslintrc.yml

@ -13,4 +13,3 @@ globals:
document: false document: false
navigator: false navigator: false
window: false window: false
FuseBox: false

2
client/components/history.vue

@ -322,7 +322,7 @@ export default {
this.target = this.cache[0] this.target = this.cache[0]
if (this.effectivePermissions) { if (this.effectivePermissions) {
this.$store.set('page/effectivePermissions',JSON.parse(Buffer.from(this.effectivePermissions, 'base64').toString()))
this.$store.set('page/effectivePermissions', JSON.parse(Buffer.from(this.effectivePermissions, 'base64').toString()))
} }
}, },
methods: { methods: {

3
dev/cypress/ci-setup.sh

@ -20,8 +20,7 @@ mssql)
sleep 30 sleep 30
docker exec db /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Password123!" -Q 'CREATE DATABASE wiki' docker exec db /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Password123!" -Q 'CREATE DATABASE wiki'
docker run -d -p 3000:3000 --name wiki --network="host" -e "DB_TYPE=mssql" -e "DB_HOST=localhost" -e "DB_PORT=1433" -e "DB_NAME=wiki" -e "DB_USER=SA" -e "DB_PASS=Password123!" requarks/wiki:canary-$BUILD_BUILDNUMBER docker run -d -p 3000:3000 --name wiki --network="host" -e "DB_TYPE=mssql" -e "DB_HOST=localhost" -e "DB_PORT=1433" -e "DB_NAME=wiki" -e "DB_USER=SA" -e "DB_PASS=Password123!" requarks/wiki:canary-$BUILD_BUILDNUMBER
docker logs wiki
sleep 15
sleep 5
docker logs wiki docker logs wiki
;; ;;
sqlite) sqlite)

21
server/db/migrations/2.5.1.js

@ -1,6 +1,27 @@
/* global WIKI */
exports.up = async knex => { exports.up = async knex => {
await knex('authentication').where('isEnabled', false).del() 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 await knex.schema
.alterTable('authentication', table => { .alterTable('authentication', table => {
table.dropColumn('isEnabled') table.dropColumn('isEnabled')

Loading…
Cancel
Save