mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-09 19:01:41 +00:00
Add migration to include isDownloadable column in mediaItemShares table
This commit is contained in:
parent
9ef45686ac
commit
32850d13ec
2 changed files with 74 additions and 0 deletions
32
server/migrations/v2.17.3-share-add-isdownloadable.js
Normal file
32
server/migrations/v2.17.3-share-add-isdownloadable.js
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
'use strict'
|
||||
|
||||
const { DataTypes } = require('sequelize')
|
||||
|
||||
/**
|
||||
* @typedef MigrationContext
|
||||
* @property {import('sequelize').QueryInterface} queryInterface - a Sequelize QueryInterface object.
|
||||
* @property {import('../Logger')} logger - a Logger object.
|
||||
*
|
||||
* @typedef MigrationOptions
|
||||
* @property {MigrationContext} context - an object containing the migration context.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This migration script adds the isDownloadable column to the mediaItemShares table.
|
||||
*
|
||||
* @param {MigrationOptions} options - an object containing the migration context.
|
||||
* @returns {Promise<void>} - A promise that resolves when the migration is complete.
|
||||
*/
|
||||
module.exports = {
|
||||
up: async ({ context: { queryInterface, logger } }) => {
|
||||
await queryInterface.addColumn('mediaItemShares', 'isDownloadable', {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: false,
|
||||
allowNull: false
|
||||
})
|
||||
},
|
||||
|
||||
down: async ({ context: { queryInterface, logger } }) => {
|
||||
await queryInterface.removeColumn('mediaItemShares', 'isDownloadable')
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
const chai = require('chai')
|
||||
const sinon = require('sinon')
|
||||
const { expect } = chai
|
||||
|
||||
const { DataTypes } = require('sequelize')
|
||||
|
||||
const { up, down } = require('../../../server/migrations/v2.17.3-share-add-isdownloadable')
|
||||
|
||||
describe('Migration v2.17.3-share-add-isDownloadable', () => {
|
||||
let queryInterface
|
||||
|
||||
beforeEach(() => {
|
||||
queryInterface = {
|
||||
addColumn: sinon.stub().resolves(),
|
||||
removeColumn: sinon.stub().resolves()
|
||||
}
|
||||
})
|
||||
|
||||
describe('up', () => {
|
||||
it('should add the isDownloadable column to mediaItemShares table', async () => {
|
||||
await up({ context: { queryInterface } })
|
||||
|
||||
expect(queryInterface.addColumn.calledOnce).to.be.true
|
||||
expect(
|
||||
queryInterface.addColumn.calledWith('mediaItemShares', 'isDownloadable', {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: false,
|
||||
allowNull: false
|
||||
})
|
||||
).to.be.true
|
||||
})
|
||||
})
|
||||
|
||||
describe('down', () => {
|
||||
it('should remove the isDownloadable column from mediaItemShares table', async () => {
|
||||
await down({ context: { queryInterface } })
|
||||
|
||||
expect(queryInterface.removeColumn.calledOnce).to.be.true
|
||||
expect(queryInterface.removeColumn.calledWith('mediaItemShares', 'isDownloadable')).to.be.true
|
||||
})
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue