diff options
Diffstat (limited to 'server/initializers')
-rw-r--r-- | server/initializers/constants.ts | 5 | ||||
-rw-r--r-- | server/initializers/database.ts | 9 | ||||
-rw-r--r-- | server/initializers/migrations/0090-videos-description.ts | 25 |
3 files changed, 35 insertions, 4 deletions
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 6dc9737d2..adccb9f41 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts | |||
@@ -15,7 +15,7 @@ import { | |||
15 | 15 | ||
16 | // --------------------------------------------------------------------------- | 16 | // --------------------------------------------------------------------------- |
17 | 17 | ||
18 | const LAST_MIGRATION_VERSION = 85 | 18 | const LAST_MIGRATION_VERSION = 90 |
19 | 19 | ||
20 | // --------------------------------------------------------------------------- | 20 | // --------------------------------------------------------------------------- |
21 | 21 | ||
@@ -122,7 +122,8 @@ const CONSTRAINTS_FIELDS = { | |||
122 | }, | 122 | }, |
123 | VIDEOS: { | 123 | VIDEOS: { |
124 | NAME: { min: 3, max: 120 }, // Length | 124 | NAME: { min: 3, max: 120 }, // Length |
125 | DESCRIPTION: { min: 3, max: 250 }, // Length | 125 | TRUNCATED_DESCRIPTION: { min: 3, max: 250 }, // Length |
126 | DESCRIPTION: { min: 3, max: 3000 }, // Length | ||
126 | EXTNAME: [ '.mp4', '.ogv', '.webm' ], | 127 | EXTNAME: [ '.mp4', '.ogv', '.webm' ], |
127 | INFO_HASH: { min: 40, max: 40 }, // Length, info hash is 20 bytes length but we represent it in hexadecimal so 20 * 2 | 128 | INFO_HASH: { min: 40, max: 40 }, // Length, info hash is 20 bytes length but we represent it in hexadecimal so 20 * 2 |
128 | DURATION: { min: 1, max: 7200 }, // Number | 129 | DURATION: { min: 1, max: 7200 }, // Number |
diff --git a/server/initializers/database.ts b/server/initializers/database.ts index dfad01581..141566c3a 100644 --- a/server/initializers/database.ts +++ b/server/initializers/database.ts | |||
@@ -84,9 +84,14 @@ database.init = async (silent: boolean) => { | |||
84 | const filePaths = await getModelFiles(modelDirectory) | 84 | const filePaths = await getModelFiles(modelDirectory) |
85 | 85 | ||
86 | for (const filePath of filePaths) { | 86 | for (const filePath of filePaths) { |
87 | const model = sequelize.import(filePath) | 87 | try { |
88 | const model = sequelize.import(filePath) | ||
88 | 89 | ||
89 | database[model['name']] = model | 90 | database[model['name']] = model |
91 | } catch (err) { | ||
92 | logger.error('Cannot import database model %s.', filePath, err) | ||
93 | process.exit(0) | ||
94 | } | ||
90 | } | 95 | } |
91 | 96 | ||
92 | for (const modelName of Object.keys(database)) { | 97 | for (const modelName of Object.keys(database)) { |
diff --git a/server/initializers/migrations/0090-videos-description.ts b/server/initializers/migrations/0090-videos-description.ts new file mode 100644 index 000000000..6f98dcade --- /dev/null +++ b/server/initializers/migrations/0090-videos-description.ts | |||
@@ -0,0 +1,25 @@ | |||
1 | import * as Sequelize from 'sequelize' | ||
2 | |||
3 | async function up (utils: { | ||
4 | transaction: Sequelize.Transaction, | ||
5 | queryInterface: Sequelize.QueryInterface, | ||
6 | sequelize: Sequelize.Sequelize, | ||
7 | db: any | ||
8 | }): Promise<void> { | ||
9 | const q = utils.queryInterface | ||
10 | |||
11 | const data = { | ||
12 | type: Sequelize.STRING(3000), | ||
13 | allowNull: false | ||
14 | } | ||
15 | await q.changeColumn('Videos', 'description', data) | ||
16 | } | ||
17 | |||
18 | function down (options) { | ||
19 | throw new Error('Not implemented.') | ||
20 | } | ||
21 | |||
22 | export { | ||
23 | up, | ||
24 | down | ||
25 | } | ||