Files
PluralFlux/src/db.js
Aster Fialla 5ab0d62bdb converted import syntax to commonJS
removed unused methods
2026-02-17 17:16:09 -05:00

84 lines
1.9 KiB
JavaScript

const {DataTypes, sequelize, Sequelize} = require('sequelize');
const {env} = require('dotenv');
env.config();
const password = process.env.POSTGRES_PASSWORD;
if (!password) {
console.error("Missing POSTGRES_PWD environment variable.");
process.exit(1);
}
const database = {
sequelize: new Sequelize('postgres', 'postgres', password, {
host: 'localhost',
logging: false,
dialect: 'postgres'
}),
Sequelize: Sequelize,
members: sequelize.define('Member', {
userid: {
type: DataTypes.STRING,
allowNull: false,
},
name: {
type: DataTypes.STRING,
allowNull: false,
},
displayname: {
type: DataTypes.STRING,
},
propic: {
type: DataTypes.STRING,
},
proxy: {
type: DataTypes.STRING,
}
}),
systems: sequelize.define('System', {
userid: {
type: DataTypes.STRING,
},
fronter: {
type: DataTypes.STRING
},
grouptag: {
type: DataTypes.STRING
},
autoproxy: {
type: DataTypes.BOOLEAN,
}
}),
/**
* Checks Sequelize database connection.
*/
check_connection: async function () {
await sequelize.authenticate().then(async () => {
console.log('Connection has been established successfully.');
await this.syncModels();
}).catch(err => {
console.error('Unable to connect to the database:', err);
process.exit(1);
});
},
/**
* Syncs Sequelize models.
*/
async syncModels() {
await this.sequelize.sync().then(() => {
console.log('Models synced successfully.');
}).catch((err) => {
console.error('Syncing models did not work', err);
process.exit(1);
});
}
};
module.exports = database;