mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-03-01 05:29:41 +00:00
Update model casing & associations
This commit is contained in:
parent
2131a65299
commit
54ca58e610
45 changed files with 830 additions and 561 deletions
|
|
@ -12,12 +12,12 @@ class Database {
|
|||
return this.sequelize?.models || {}
|
||||
}
|
||||
|
||||
async init() {
|
||||
async init(force = false) {
|
||||
if (!await this.connect()) {
|
||||
throw new Error('Database connection failed')
|
||||
}
|
||||
|
||||
await this.buildModels()
|
||||
await this.buildModels(force)
|
||||
Logger.info(`[Database] Db initialized`, Object.keys(this.sequelize.models))
|
||||
}
|
||||
|
||||
|
|
@ -30,6 +30,9 @@ class Database {
|
|||
logging: false
|
||||
})
|
||||
|
||||
// Helper function
|
||||
this.sequelize.uppercaseFirst = str => str ? `${str[0].toUpperCase()}${str.substr(1)}` : ''
|
||||
|
||||
try {
|
||||
await this.sequelize.authenticate()
|
||||
Logger.info(`[Database] Db connection was successful`)
|
||||
|
|
@ -40,15 +43,15 @@ class Database {
|
|||
}
|
||||
}
|
||||
|
||||
buildModels() {
|
||||
buildModels(force = false) {
|
||||
require('./models/User')(this.sequelize)
|
||||
require('./models/FileMetadata')(this.sequelize)
|
||||
require('./models/Library')(this.sequelize)
|
||||
require('./models/LibraryFolder')(this.sequelize)
|
||||
require('./models/LibraryItem')(this.sequelize)
|
||||
require('./models/EBookFile')(this.sequelize)
|
||||
require('./models/Book')(this.sequelize)
|
||||
require('./models/Podcast')(this.sequelize)
|
||||
require('./models/Library')(this.sequelize)
|
||||
require('./models/LibraryFolder')(this.sequelize)
|
||||
require('./models/LibraryItem')(this.sequelize)
|
||||
require('./models/PodcastEpisode')(this.sequelize)
|
||||
require('./models/MediaProgress')(this.sequelize)
|
||||
require('./models/LibraryFile')(this.sequelize)
|
||||
|
|
@ -82,24 +85,7 @@ class Database {
|
|||
require('./models/Notification')(this.sequelize)
|
||||
require('./models/UserPermission')(this.sequelize)
|
||||
|
||||
return this.sequelize.sync({ force: true })
|
||||
}
|
||||
|
||||
async createTestUser() {
|
||||
const User = this.sequelize.models.User
|
||||
|
||||
let user = await User.findOne({
|
||||
where: {
|
||||
username: 'Tester'
|
||||
}
|
||||
})
|
||||
|
||||
if (user) {
|
||||
Logger.info(`[Database] Tester user was found`, user.toJSON())
|
||||
} else {
|
||||
user = await User.create({ username: 'Tester' })
|
||||
Logger.info(`[Database] Created Tester user`, user.toJSON())
|
||||
}
|
||||
return this.sequelize.sync({ force })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue