Init commit
This commit is contained in:
55
server/core/initializers/migrations/0585-video-file-names.ts
Normal file
55
server/core/initializers/migrations/0585-video-file-names.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import * as Sequelize from 'sequelize'
|
||||
|
||||
async function up (utils: {
|
||||
transaction: Sequelize.Transaction
|
||||
queryInterface: Sequelize.QueryInterface
|
||||
sequelize: Sequelize.Sequelize
|
||||
db: any
|
||||
}): Promise<void> {
|
||||
for (const column of [ 'filename', 'fileUrl', 'torrentFilename', 'torrentUrl' ]) {
|
||||
const data = {
|
||||
type: Sequelize.STRING,
|
||||
allowNull: true,
|
||||
defaultValue: null
|
||||
}
|
||||
|
||||
await utils.queryInterface.addColumn('videoFile', column, data)
|
||||
}
|
||||
|
||||
// Generate filenames for webtorrent files
|
||||
{
|
||||
const webtorrentQuery = `SELECT "videoFile".id, "video".uuid, "videoFile".resolution, "videoFile".extname ` +
|
||||
`FROM video INNER JOIN "videoFile" ON "videoFile"."videoId" = video.id`
|
||||
|
||||
const query = `UPDATE "videoFile" ` +
|
||||
`SET filename = t.uuid || '-' || t.resolution || t.extname, ` +
|
||||
`"torrentFilename" = t.uuid || '-' || t.resolution || '.torrent' ` +
|
||||
`FROM (${webtorrentQuery}) AS t WHERE t.id = "videoFile"."id"`
|
||||
|
||||
await utils.sequelize.query(query)
|
||||
}
|
||||
|
||||
// Generate filenames for HLS files
|
||||
{
|
||||
const hlsQuery = `SELECT "videoFile".id, "video".uuid, "videoFile".resolution, "videoFile".extname ` +
|
||||
`FROM video ` +
|
||||
`INNER JOIN "videoStreamingPlaylist" ON "videoStreamingPlaylist"."videoId" = video.id ` +
|
||||
`INNER JOIN "videoFile" ON "videoFile"."videoStreamingPlaylistId" = "videoStreamingPlaylist".id`
|
||||
|
||||
const query = `UPDATE "videoFile" ` +
|
||||
`SET filename = t.uuid || '-' || t.resolution || '-fragmented' || t.extname, ` +
|
||||
`"torrentFilename" = t.uuid || '-' || t.resolution || '-hls.torrent' ` +
|
||||
`FROM (${hlsQuery}) AS t WHERE t.id = "videoFile"."id"`
|
||||
|
||||
await utils.sequelize.query(query)
|
||||
}
|
||||
}
|
||||
|
||||
function down (options) {
|
||||
throw new Error('Not implemented.')
|
||||
}
|
||||
|
||||
export {
|
||||
up,
|
||||
down
|
||||
}
|
||||
Reference in New Issue
Block a user