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;
|
||||
try {
|
||||
track = await database.models.Track.findOne({
|
||||
where: {
|
||||
id: id
|
||||
}
|
||||
});
|
||||
track = await database.models.Track.findByPk(id);
|
||||
} catch (err) {
|
||||
logger.error('error finding track \'' + id + '\' > ' + err);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ class Database {
|
|||
continue;
|
||||
}
|
||||
const model = require(modelFile);
|
||||
if (model.tableName === undefined || model.sync === undefined) {
|
||||
if (model.createTable === undefined) {
|
||||
continue;
|
||||
}
|
||||
modelFile = path.basename(modelFile);
|
||||
|
@ -62,7 +62,7 @@ class Database {
|
|||
const model = models[index];
|
||||
try {
|
||||
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');
|
||||
} catch (err) {
|
||||
logger.error('an error occured creating table \'' + model.tableName + '\' > ' + err);
|
||||
|
|
|
@ -1,7 +1,23 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
|
||||
const Album = database.connection.define("album", {
|
||||
const tableName = '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;
|
||||
module.exports = { Album, createTable, tableName };
|
|
@ -1,6 +1,21 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
|
||||
const AlbumToArtist = database.connection.define("albumtoartist", {
|
||||
const tableName = '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
|
||||
},
|
||||
|
@ -8,5 +23,6 @@ const AlbumToArtist = database.connection.define("albumtoartist", {
|
|||
freezeTableName: true
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = AlbumToArtist;
|
||||
module.exports = { AlbumToArtist, createTable, tableName };
|
|
@ -1,7 +1,23 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
|
||||
const Artist = database.connection.define("artist", {
|
||||
const tableName = '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;
|
||||
module.exports = { Artist, createTable, tableName };
|
|
@ -1,6 +1,21 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
|
||||
const Track = database.connection.define("track", {
|
||||
const tableName = '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,
|
||||
|
@ -11,5 +26,6 @@ const Track = database.connection.define("track", {
|
|||
trackof: DataTypes.INTEGER,
|
||||
file: DataTypes.TEXT
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = Track;
|
||||
module.exports = { Track, createTable, tableName };
|
|
@ -1,6 +1,21 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
|
||||
const TrackToAlbum = database.connection.define("tracktoalbum", {
|
||||
const tableName = '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
|
||||
},
|
||||
|
@ -8,5 +23,6 @@ const TrackToAlbum = database.connection.define("tracktoalbum", {
|
|||
freezeTableName: true
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = TrackToAlbum;
|
||||
module.exports = { TrackToAlbum, createTable, tableName };
|
|
@ -1,6 +1,21 @@
|
|||
const { DataTypes } = require('sequelize');
|
||||
|
||||
const TrackToArtist = database.connection.define("tracktoartist", {
|
||||
const tableName = '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
|
||||
},
|
||||
|
@ -8,5 +23,6 @@ const TrackToArtist = database.connection.define("tracktoartist", {
|
|||
freezeTableName: true
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = TrackToArtist;
|
||||
module.exports = { TrackToArtist, createTable, tableName };
|
Loading…
Reference in a new issue