From 8e86f7297582a5802dfb06075ecc15f536dfb1fc Mon Sep 17 00:00:00 2001 From: counterweight Date: Sun, 9 Mar 2025 17:09:40 +0100 Subject: [PATCH] start --- .sequelizerc | 6 ++++ src/database/config.js | 20 +++++++++++++ .../migrations/20250308000000-create-table.js | 30 +++++++++++++++++++ src/dependencies.js | 2 +- 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 .sequelizerc create mode 100644 src/database/config.js create mode 100644 src/database/migrations/20250308000000-create-table.js diff --git a/.sequelizerc b/.sequelizerc new file mode 100644 index 0000000..c49d00f --- /dev/null +++ b/.sequelizerc @@ -0,0 +1,6 @@ +const path = require('path'); + +module.exports = { + config: path.resolve('src', 'database', 'config.js'), + 'migrations-path': path.resolve('src', 'database', 'migrations'), +}; diff --git a/src/database/config.js b/src/database/config.js new file mode 100644 index 0000000..a13f133 --- /dev/null +++ b/src/database/config.js @@ -0,0 +1,20 @@ +const dotenv = require('dotenv'); + +dotenv.config(); + +module.exports = { + development: { + dialect: 'postgres', + host: process.env.POSTGRES_HOST, + port: 5432, + database: process.env.POSTGRES_DB, + username: process.env.POSTGRES_USER, + password: process.env.POSTGRES_PASSWORD, + define: { + timestamps: false, + freezeTableName: true, + underscored: true, + quoteIdentifiers: false, + }, + }, +}; diff --git a/src/database/migrations/20250308000000-create-table.js b/src/database/migrations/20250308000000-create-table.js new file mode 100644 index 0000000..bb77410 --- /dev/null +++ b/src/database/migrations/20250308000000-create-table.js @@ -0,0 +1,30 @@ +'use strict'; +module.exports = { + up: (queryInterface, Sequelize) => { + return queryInterface.createTable('Users', { + id: { + allowNull: false, + autoIncrement: true, + primaryKey: true, + type: Sequelize.INTEGER, + }, + firstName: { + type: Sequelize.STRING, + }, + lastName: { + type: Sequelize.STRING, + }, + createdAt: { + allowNull: false, + type: Sequelize.DATE, + }, + updatedAt: { + allowNull: false, + type: Sequelize.DATE, + }, + }); + }, + down: (queryInterface, Sequelize) => { + return queryInterface.dropTable('Users'); + }, +}; diff --git a/src/dependencies.js b/src/dependencies.js index f9d9aa8..a93620d 100644 --- a/src/dependencies.js +++ b/src/dependencies.js @@ -5,7 +5,7 @@ function buildDependencies() { const errors = require('./errors'); const constants = require('./constants'); - const sequelize = require('./database'); + const sequelize = require('./database/database'); const { DataTypes } = require('sequelize'); const ModelsProvider = require('./models'); const models = new ModelsProvider({ sequelize, DataTypes }).provide();