moved database models into own classes
This commit is contained in:
parent
83a4f9b8e8
commit
038603314a
8 changed files with 146 additions and 54 deletions
|
@ -62,11 +62,7 @@ class Api {
|
||||||
}
|
}
|
||||||
let track;
|
let track;
|
||||||
try {
|
try {
|
||||||
track = await database.models.Track.findOne({
|
track = await database.models.Track.findByPk(id);
|
||||||
where: {
|
|
||||||
id: id
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error('error finding track \'' + id + '\' > ' + err);
|
logger.error('error finding track \'' + id + '\' > ' + err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ class Database {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const model = require(modelFile);
|
const model = require(modelFile);
|
||||||
if (model.tableName === undefined || model.sync === undefined) {
|
if (model.createTable === undefined) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
modelFile = path.basename(modelFile);
|
modelFile = path.basename(modelFile);
|
||||||
|
@ -62,7 +62,7 @@ class Database {
|
||||||
const model = models[index];
|
const model = models[index];
|
||||||
try {
|
try {
|
||||||
const timestamp = new Date().getTime();
|
const timestamp = new Date().getTime();
|
||||||
await model.sync({ alter: true });
|
await model.createTable();
|
||||||
logger.debug('creation/alteration of table \'' + model.tableName + '\' finished after ' + (new Date().getTime() - timestamp) + 'ms');
|
logger.debug('creation/alteration of table \'' + model.tableName + '\' finished after ' + (new Date().getTime() - timestamp) + 'ms');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error('an error occured creating table \'' + model.tableName + '\' > ' + err);
|
logger.error('an error occured creating table \'' + model.tableName + '\' > ' + err);
|
||||||
|
|
|
@ -1,7 +1,23 @@
|
||||||
const { DataTypes } = require('sequelize');
|
const { DataTypes } = require('sequelize');
|
||||||
|
|
||||||
const Album = database.connection.define("album", {
|
const tableName = 'album';
|
||||||
name: DataTypes.TEXT
|
|
||||||
});
|
|
||||||
|
|
||||||
module.exports = Album;
|
class Album {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function createTable() {
|
||||||
|
(await getModel()).sync({ alter: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getModel() {
|
||||||
|
return database.connection.define(tableName, {
|
||||||
|
name: DataTypes.TEXT
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { Album, createTable, tableName };
|
|
@ -1,12 +1,28 @@
|
||||||
const { DataTypes } = require('sequelize');
|
const { DataTypes } = require('sequelize');
|
||||||
|
|
||||||
const AlbumToArtist = database.connection.define("albumtoartist", {
|
const tableName = 'albumtoartist';
|
||||||
album: DataTypes.INTEGER,
|
|
||||||
artist: DataTypes.INTEGER
|
|
||||||
},
|
|
||||||
{
|
|
||||||
freezeTableName: true
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
module.exports = AlbumToArtist;
|
class AlbumToArtist {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function createTable() {
|
||||||
|
(await getModel()).sync({ alter: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getModel() {
|
||||||
|
return database.connection.define(tableName, {
|
||||||
|
album: DataTypes.INTEGER,
|
||||||
|
artist: DataTypes.INTEGER
|
||||||
|
},
|
||||||
|
{
|
||||||
|
freezeTableName: true
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { AlbumToArtist, createTable, tableName };
|
|
@ -1,7 +1,23 @@
|
||||||
const { DataTypes } = require('sequelize');
|
const { DataTypes } = require('sequelize');
|
||||||
|
|
||||||
const Artist = database.connection.define("artist", {
|
const tableName = 'artist';
|
||||||
name: DataTypes.TEXT
|
|
||||||
});
|
|
||||||
|
|
||||||
module.exports = Artist;
|
class Artist {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function createTable() {
|
||||||
|
(await getModel()).sync({ alter: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getModel() {
|
||||||
|
return database.connection.define(tableName, {
|
||||||
|
name: DataTypes.TEXT
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { Artist, createTable, tableName };
|
|
@ -1,15 +1,31 @@
|
||||||
const { DataTypes } = require('sequelize');
|
const { DataTypes } = require('sequelize');
|
||||||
|
|
||||||
const Track = database.connection.define("track", {
|
const tableName = 'track';
|
||||||
title: DataTypes.TEXT,
|
|
||||||
year: DataTypes.INTEGER,
|
|
||||||
duration: DataTypes.FLOAT,
|
|
||||||
comment: DataTypes.TEXT,
|
|
||||||
diskno: DataTypes.INTEGER,
|
|
||||||
diskof: DataTypes.INTEGER,
|
|
||||||
trackno: DataTypes.INTEGER,
|
|
||||||
trackof: DataTypes.INTEGER,
|
|
||||||
file: DataTypes.TEXT
|
|
||||||
});
|
|
||||||
|
|
||||||
module.exports = Track;
|
class Track {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function createTable() {
|
||||||
|
(await getModel()).sync({ alter: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getModel() {
|
||||||
|
return database.connection.define(tableName, {
|
||||||
|
title: DataTypes.TEXT,
|
||||||
|
year: DataTypes.INTEGER,
|
||||||
|
duration: DataTypes.FLOAT,
|
||||||
|
comment: DataTypes.TEXT,
|
||||||
|
diskno: DataTypes.INTEGER,
|
||||||
|
diskof: DataTypes.INTEGER,
|
||||||
|
trackno: DataTypes.INTEGER,
|
||||||
|
trackof: DataTypes.INTEGER,
|
||||||
|
file: DataTypes.TEXT
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { Track, createTable, tableName };
|
|
@ -1,12 +1,28 @@
|
||||||
const { DataTypes } = require('sequelize');
|
const { DataTypes } = require('sequelize');
|
||||||
|
|
||||||
const TrackToAlbum = database.connection.define("tracktoalbum", {
|
const tableName = 'tracktoalbum';
|
||||||
track: DataTypes.INTEGER,
|
|
||||||
album: DataTypes.INTEGER
|
|
||||||
},
|
|
||||||
{
|
|
||||||
freezeTableName: true
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
module.exports = TrackToAlbum;
|
class TrackToAlbum {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function createTable() {
|
||||||
|
(await getModel()).sync({ alter: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getModel() {
|
||||||
|
return database.connection.define(tableName, {
|
||||||
|
track: DataTypes.INTEGER,
|
||||||
|
album: DataTypes.INTEGER
|
||||||
|
},
|
||||||
|
{
|
||||||
|
freezeTableName: true
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { TrackToAlbum, createTable, tableName };
|
|
@ -1,12 +1,28 @@
|
||||||
const { DataTypes } = require('sequelize');
|
const { DataTypes } = require('sequelize');
|
||||||
|
|
||||||
const TrackToArtist = database.connection.define("tracktoartist", {
|
const tableName = 'tracktoartist'
|
||||||
track: DataTypes.INTEGER,
|
|
||||||
artist: DataTypes.INTEGER
|
|
||||||
},
|
|
||||||
{
|
|
||||||
freezeTableName: true
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
module.exports = TrackToArtist;
|
class TrackToArtist {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function createTable() {
|
||||||
|
(await getModel()).sync({ alter: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getModel() {
|
||||||
|
return database.connection.define(tableName, {
|
||||||
|
track: DataTypes.INTEGER,
|
||||||
|
artist: DataTypes.INTEGER
|
||||||
|
},
|
||||||
|
{
|
||||||
|
freezeTableName: true
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { TrackToArtist, createTable, tableName };
|
Loading…
Reference in a new issue