36 lines
883 B
TypeScript
36 lines
883 B
TypeScript
|
import {Sequelize} from 'sequelize';
|
||
|
|
||
|
import Article from './models/article';
|
||
|
import Tag from './models/tag';
|
||
|
import User from './models/user';
|
||
|
import UniqueLink from './models/uniquelink';
|
||
|
|
||
|
/**
|
||
|
* Connect to database
|
||
|
* @param {Sequelize} sequelize the sequelize object
|
||
|
*/
|
||
|
export async function dbConnect(sequelize: Sequelize) {
|
||
|
try {
|
||
|
await sequelize.authenticate();
|
||
|
console.log('Successfully connected to the database ' +
|
||
|
sequelize.config.database);
|
||
|
} catch (err) {
|
||
|
console.error('Connection to database failed:', err);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Connect and init database
|
||
|
* @param {Sequelize} sequelize the sequelize object
|
||
|
*/
|
||
|
export async function dbConnectAndInit(sequelize: Sequelize) {
|
||
|
await Article.hasMany(Tag, {
|
||
|
foreignKey: 'articleId',
|
||
|
onDelete: 'CASCADE',
|
||
|
});
|
||
|
await dbConnect(sequelize);
|
||
|
await User.sync();
|
||
|
await UniqueLink.sync();
|
||
|
await sequelize.sync();
|
||
|
}
|