From 1735c825726edaa0af5035cb6cbb0cc0db502c6d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 18 Apr 2019 11:28:17 +0200 Subject: Update sequelize --- server/initializers/database.ts | 13 +++++++++---- server/initializers/migrations/0080-video-channels.ts | 2 +- server/initializers/migrations/0100-activitypub.ts | 10 +++++----- server/initializers/migrations/0135-video-channel-actor.ts | 3 ++- server/initializers/migrations/0345-video-playlists.ts | 4 +++- server/initializers/migrator.ts | 8 +++++++- 6 files changed, 27 insertions(+), 13 deletions(-) (limited to 'server/initializers') diff --git a/server/initializers/database.ts b/server/initializers/database.ts index 8f237eb23..d1744d21f 100644 --- a/server/initializers/database.ts +++ b/server/initializers/database.ts @@ -37,6 +37,7 @@ import { VideoStreamingPlaylistModel } from '../models/video/video-streaming-pla import { VideoPlaylistModel } from '../models/video/video-playlist' import { VideoPlaylistElementModel } from '../models/video/video-playlist-element' import { ThumbnailModel } from '../models/video/thumbnail' +import { QueryTypes, Transaction } from 'sequelize' require('pg').defaults.parseInt8 = true // Avoid BIGINT to be converted to string @@ -58,8 +59,7 @@ const sequelizeTypescript = new SequelizeTypescript({ max: poolMax }, benchmark: isTestInstance(), - isolationLevel: SequelizeTypescript.Transaction.ISOLATION_LEVELS.SERIALIZABLE, - operatorsAliases: false, + isolationLevel: Transaction.ISOLATION_LEVELS.SERIALIZABLE, logging: (message: string, benchmark: number) => { if (process.env.NODE_DB_LOG === 'false') return @@ -141,10 +141,15 @@ async function checkPostgresExtensions () { async function checkPostgresExtension (extension: string) { const query = `SELECT true AS enabled FROM pg_available_extensions WHERE name = '${extension}' AND installed_version IS NOT NULL;` - const [ res ] = await sequelizeTypescript.query(query, { raw: true }) + const options = { + type: QueryTypes.SELECT as QueryTypes.SELECT, + raw: true + } + + const res = await sequelizeTypescript.query<{ enabled: boolean }>(query, options) if (!res || res.length === 0 || res[ 0 ][ 'enabled' ] !== true) { - // Try to create the extension ourself + // Try to create the extension ourselves try { await sequelizeTypescript.query(`CREATE EXTENSION ${extension};`, { raw: true }) diff --git a/server/initializers/migrations/0080-video-channels.ts b/server/initializers/migrations/0080-video-channels.ts index 0e17a4ccd..5512bdcf1 100644 --- a/server/initializers/migrations/0080-video-channels.ts +++ b/server/initializers/migrations/0080-video-channels.ts @@ -69,7 +69,7 @@ async function up (utils: { const options = { type: Sequelize.QueryTypes.SELECT } - const rawVideos = await utils.sequelize.query(query, options) + const rawVideos = await utils.sequelize.query(query, options) as any for (const rawVideo of rawVideos) { const videoChannel = await utils.db.VideoChannel.findOne({ where: { authorId: rawVideo.authorId } }) diff --git a/server/initializers/migrations/0100-activitypub.ts b/server/initializers/migrations/0100-activitypub.ts index a7ebd804c..2880a97d9 100644 --- a/server/initializers/migrations/0100-activitypub.ts +++ b/server/initializers/migrations/0100-activitypub.ts @@ -21,7 +21,7 @@ async function up (utils: { const options = { type: Sequelize.QueryTypes.SELECT } - const res = await utils.sequelize.query(query, options) + const res = await utils.sequelize.query(query, options) as any if (!res[0] || res[0].total !== 0) { throw new Error('You need to quit friends.') @@ -68,8 +68,8 @@ async function up (utils: { const accountCreated = await createLocalAccountWithoutKeys(SERVER_ACTOR_NAME, null, applicationInstance.id, undefined) const { publicKey, privateKey } = await createPrivateAndPublicKeys() - accountCreated.set('publicKey', publicKey) - accountCreated.set('privateKey', privateKey) + accountCreated.Actor.publicKey = publicKey + accountCreated.Actor.privateKey = privateKey await accountCreated.save() } @@ -86,8 +86,8 @@ async function up (utils: { const account = await createLocalAccountWithoutKeys(user.username, user.id, null, undefined) const { publicKey, privateKey } = await createPrivateAndPublicKeys() - account.set('publicKey', publicKey) - account.set('privateKey', privateKey) + account.Actor.publicKey = publicKey + account.Actor.privateKey = privateKey await account.save() } diff --git a/server/initializers/migrations/0135-video-channel-actor.ts b/server/initializers/migrations/0135-video-channel-actor.ts index 033f43b68..5ace0f4d2 100644 --- a/server/initializers/migrations/0135-video-channel-actor.ts +++ b/server/initializers/migrations/0135-video-channel-actor.ts @@ -239,7 +239,8 @@ async function up (utils: { { const query = 'SELECT * FROM "actor" WHERE "serverId" IS NULL AND "publicKey" IS NULL' - const [ res ] = await utils.sequelize.query(query) + const options = { type: Sequelize.QueryTypes.SELECT as Sequelize.QueryTypes.SELECT } + const [ res ] = await utils.sequelize.query(query, options) for (const actor of res) { const { privateKey, publicKey } = await createPrivateAndPublicKeys() diff --git a/server/initializers/migrations/0345-video-playlists.ts b/server/initializers/migrations/0345-video-playlists.ts index 6953f5553..de69f5b9e 100644 --- a/server/initializers/migrations/0345-video-playlists.ts +++ b/server/initializers/migrations/0345-video-playlists.ts @@ -51,7 +51,9 @@ CREATE TABLE IF NOT EXISTS "videoPlaylistElement" { const userQuery = 'SELECT "username" FROM "user";' - const userResult = await utils.sequelize.query(userQuery, { transaction, type: Sequelize.QueryTypes.SELECT }) + + const options = { transaction, type: Sequelize.QueryTypes.SELECT as Sequelize.QueryTypes.SELECT } + const userResult = await utils.sequelize.query<{ username: string }>(userQuery, options) const usernames = userResult.map(r => r.username) for (const username of usernames) { diff --git a/server/initializers/migrator.ts b/server/initializers/migrator.ts index adc2f9fb3..1cb0116b7 100644 --- a/server/initializers/migrator.ts +++ b/server/initializers/migrator.ts @@ -3,6 +3,7 @@ import { logger } from '../helpers/logger' import { LAST_MIGRATION_VERSION } from './constants' import { sequelizeTypescript } from './database' import { readdir } from 'fs-extra' +import { QueryTypes } from 'sequelize' async function migrate () { const tables = await sequelizeTypescript.getQueryInterface().showAllTables() @@ -13,7 +14,12 @@ async function migrate () { let actualVersion: number | null = null - const [ rows ] = await sequelizeTypescript.query('SELECT "migrationVersion" FROM "application"') + const query = 'SELECT "migrationVersion" FROM "application"' + const options = { + type: QueryTypes.SELECT as QueryTypes.SELECT + } + + const rows = await sequelizeTypescript.query<{ migrationVersion: number }>(query, options) if (rows && rows[0] && rows[0].migrationVersion) { actualVersion = rows[0].migrationVersion } -- cgit v1.2.3