manually fix mariadb json fields
This commit is contained in:
parent
f4ca625fea
commit
93bbe5f268
2 changed files with 33 additions and 1 deletions
|
@ -6,7 +6,7 @@ const config = require('../../config')
|
||||||
const log = require('../../log')
|
const log = require('../../log')
|
||||||
const SequelizeSlugify = require('sequelize-slugify')
|
const SequelizeSlugify = require('sequelize-slugify')
|
||||||
const DB = require('./models')
|
const DB = require('./models')
|
||||||
|
const semver = require('semver')
|
||||||
const models = {
|
const models = {
|
||||||
Announcement: require('./announcement'),
|
Announcement: require('./announcement'),
|
||||||
APUser: require('./ap_user'),
|
APUser: require('./ap_user'),
|
||||||
|
@ -104,8 +104,39 @@ const db = {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async fixMariaDBJSON () {
|
||||||
|
|
||||||
|
// manually fix mariadb JSON wrong parse
|
||||||
|
if (db.sequelize.options.dialect === 'mariadb' && semver.lt('10.5.2', db.sequelize.options.databaseVersion)) {
|
||||||
|
try {
|
||||||
|
const ret = await db.sequelize.query('SHOW CREATE TABLE `settings`')
|
||||||
|
if (!ret[0][0]['Create Table'].toLowerCase().includes('json_valid')){
|
||||||
|
await db.sequelize.query('alter table settings modify `value` JSON')
|
||||||
|
await db.sequelize.query('alter table ap_users modify `object` JSON')
|
||||||
|
await db.sequelize.query('alter table events modify `recurrent` JSON')
|
||||||
|
await db.sequelize.query('alter table events modify `likes` JSON')
|
||||||
|
await db.sequelize.query('alter table events modify `boost` JSON')
|
||||||
|
await db.sequelize.query('alter table events modify `media` JSON')
|
||||||
|
await db.sequelize.query('alter table events modify `online_locations` JSON')
|
||||||
|
await db.sequelize.query('alter table filters modify `tags` JSON')
|
||||||
|
await db.sequelize.query('alter table filters modify `places` JSON')
|
||||||
|
await db.sequelize.query('alter table instances modify `data` JSON')
|
||||||
|
await db.sequelize.query('alter table notifications modify `filters` JSON')
|
||||||
|
await db.sequelize.query('alter table resources modify `data` JSON')
|
||||||
|
await db.sequelize.query('alter table users modify `settings` JSON')
|
||||||
|
await db.sequelize.query('alter table users modify `rsa` JSON')
|
||||||
|
log.info(`MariaDB JSON migrations done`)
|
||||||
|
} else {
|
||||||
|
log.debug('MariaDB JSON issue already fixed')
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
async runMigrations() {
|
async runMigrations() {
|
||||||
const logging = config.status !== 'READY' ? false : log.debug.bind(log)
|
const logging = config.status !== 'READY' ? false : log.debug.bind(log)
|
||||||
|
|
||||||
const umzug = new Umzug({
|
const umzug = new Umzug({
|
||||||
storage: 'sequelize',
|
storage: 'sequelize',
|
||||||
storageOptions: { sequelize: db.sequelize },
|
storageOptions: { sequelize: db.sequelize },
|
||||||
|
|
|
@ -30,6 +30,7 @@ const initialize = {
|
||||||
await db.sequelize.authenticate()
|
await db.sequelize.authenticate()
|
||||||
log.debug('Running migrations')
|
log.debug('Running migrations')
|
||||||
await db.runMigrations()
|
await db.runMigrations()
|
||||||
|
await db.fixMariaDBJSON()
|
||||||
await settingsController.load()
|
await settingsController.load()
|
||||||
config.status = 'READY'
|
config.status = 'READY'
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue