forked from PluralFlux/PluralFlux
59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
import {DataTypes, Sequelize} from 'sequelize';
|
|
|
|
const password = process.env.POSTGRES_PASSWORD;
|
|
|
|
if (!password) {
|
|
console.error("Missing POSTGRES_PWD environment variable.");
|
|
process.exit(1);
|
|
}
|
|
|
|
const database = {};
|
|
|
|
const sequelize = new Sequelize('postgres', 'postgres', password, {
|
|
host: 'localhost',
|
|
dialect: 'postgres'
|
|
});
|
|
|
|
database.sequelize = sequelize;
|
|
database.Sequelize = Sequelize;
|
|
|
|
database.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,
|
|
}
|
|
});
|
|
|
|
database.check_connection = async function() {
|
|
await sequelize.authenticate().then(async (result) => {
|
|
console.log('Connection has been established successfully.');
|
|
await syncModels();
|
|
}).catch(err => {
|
|
console.error('Unable to connect to the database:', err);
|
|
process.exit(1);
|
|
});
|
|
}
|
|
|
|
async function syncModels() {
|
|
await sequelize.sync().then((result) => {
|
|
console.log('Models synced successfully.');
|
|
}).catch((err) => {
|
|
console.error('Syncing models did not work', err);
|
|
process.exit(1);
|
|
});
|
|
}
|
|
|
|
export const db = database; |