import { QueryTypes, Transaction } from 'sequelize'
import { Sequelize as SequelizeTypescript } from 'sequelize-typescript'
-import { AbuseModel } from '@server/models/abuse/abuse'
-import { VideoAbuseModel } from '@server/models/abuse/video-abuse'
-import { VideoCommentAbuseModel } from '@server/models/abuse/video-comment-abuse'
import { isTestInstance } from '../helpers/core-utils'
import { logger } from '../helpers/logger'
+import { AbuseModel } from '../models/abuse/abuse'
+import { AbuseMessageModel } from '../models/abuse/abuse-message'
+import { VideoAbuseModel } from '../models/abuse/video-abuse'
+import { VideoCommentAbuseModel } from '../models/abuse/video-comment-abuse'
import { AccountModel } from '../models/account/account'
import { AccountBlocklistModel } from '../models/account/account-blocklist'
import { AccountVideoRateModel } from '../models/account/account-video-rate'
import { VideoCommentModel } from '../models/video/video-comment'
import { VideoFileModel } from '../models/video/video-file'
import { VideoImportModel } from '../models/video/video-import'
+import { VideoLiveModel } from '../models/video/video-live'
import { VideoPlaylistModel } from '../models/video/video-playlist'
import { VideoPlaylistElementModel } from '../models/video/video-playlist-element'
import { VideoShareModel } from '../models/video/video-share'
const username = CONFIG.DATABASE.USERNAME
const password = CONFIG.DATABASE.PASSWORD
const host = CONFIG.DATABASE.HOSTNAME
+const ssl = CONFIG.DATABASE.SSL
const port = CONFIG.DATABASE.PORT
const poolMax = CONFIG.DATABASE.POOL.MAX
port,
username,
password,
+ ssl,
pool: {
max: poolMax
},
}
})
+function checkDatabaseConnectionOrDie () {
+ sequelizeTypescript.authenticate()
+ .then(() => logger.debug('Connection to PostgreSQL has been established successfully.'))
+ .catch(err => {
+
+ logger.error('Unable to connect to PostgreSQL database.', { err })
+ process.exit(-1)
+ })
+}
+
async function initDatabaseModels (silent: boolean) {
sequelizeTypescript.addModels([
ApplicationModel,
TagModel,
AccountVideoRateModel,
UserModel,
+ AbuseMessageModel,
AbuseModel,
VideoCommentAbuseModel,
VideoAbuseModel,
VideoViewModel,
VideoRedundancyModel,
UserVideoHistoryModel,
+ VideoLiveModel,
AccountBlocklistModel,
ServerBlocklistModel,
UserNotificationModel,
export {
initDatabaseModels,
+ checkDatabaseConnectionOrDie,
sequelizeTypescript
}