Ahoy there mates! Who's excited to embark onto the SQL world? Let's go meet PostgreSQL!! Stay tuned. Because on the very NEXT blog, we'll learn how to automate all DB setups and Schema generations!
On this blog, we'll learn how to setup PostgreSQL with NodeJS!! To double the fun, let's throw some TypeScript as well. Don't worry, even if you don't know it, we'll be going from level 0, so as long as you know the basics of JavaScript, hop on. Let the adventure begin!!
Step 0: Project Setup
Create a folder and open it in your favorite editor (mine VS Code). Then type this command on your project terminal
npm init -y
(It'll create a package.json file to track all the packages that you'd download and so on)
Bonus Step: Adding TypeScript
For those who are a bit lost on how to set up the environment and run the TypeScript files, check this one out TypeScript SETUP by SilvenLEAF
Well anyway, in short (for details, checkout the above link)
- install typescript
npm i typescript
- init our tsconfig (make sure you already have typescript globally installed, if not type npm i -g typescript. And don't get it confused with the previous normal npm i typescript command)
tsc --init
(It'll create a .tsconfig file)
- install ts-node and ts-node-dev
npm i ts-node ts-node-dev
Now finally, let's setup our PostgreSQL Database
Step 1: Install DB Packages
Type the following command to install the required db packages.
npm i sequelize @types/sequelize sequelize-cli pg pg-hstore
Step 2: Create .sequelizerc file
Type touch .sequelizerc to create .sequelizerc file. Now paste the following content into this .sequelizerc file.
const path = require('path')
module.exports = {
config: path.resolve('./database/config', 'config.js'),
'models-path': path.resolve('./database/models'),
'seeders-path': path.resolve('./database/seeders'),
'migrations-path': path.resolve('./database/migrations'),
}
Sequelize uses this .sequelizerc file to generate the config and the model using the specified path.
Next up, we generate the config by running the command mentioned in next step.
Step 3: Generate Database config
Make sure you have sequelize-cli globally installed. If not, install it globally by using this command npm i -g sequelize-cli. Otherwise the following command won't work.
Type the following command to create the Database config.
sequelize init
It will create a folder called database on the root level and with the following structure/stuff inside it.
const database = {
config: {
"config.js": "it is the config js file",
},
migrations: {},
models: { "index.js": null}, // here, I mean, in this "models" folder, we'll put our db models
}
Step 4: Edit database/config/config.js
Next up, let's edit the database/config/config.js.
Replace the content of the database/config/config.js with the code below:
const database = {
user: 'yourDatabaseUser',
password: 'yourDatabasePassword',
name: 'yourDatabaseName',
};
const DB_STRING = `postgres://${ database.user }:${ database.password }@127.0.0.1:5432/${ database.name }`
module.exports = {
development: {
url: DB_STRING,
dialect: 'postgres',
},
test: {
url: DB_STRING,
dialect: 'postgres',
},
production: {
url: DB_STRING,
dialect: 'postgres',
},
}
Congratulations you are all set up!! Now, create your schemas in that modals folder and export it. Then import in the file where you want to use it and use it to your heart's content!
But you know what? We are not gonna do that here now. Because We'll automate them right in the next blog. So stay tuned!
NEXT blog coming soon by Nov 3rd!!
What's NEXT?
1. Automate creating DB Schemas
2. Insane stuff with JavaScript/TypeScript
3. Debugging TypeScript with VS Code Debugger
4. How to automate anything
5. Sequelize Hooks
6. Improved AI BOT that can do anything
7. How to create an Android APP with NO XP
(including apk generating)
Got any doubt?
Drop a comment or Feel free to reach out to me @SilveLEAF on Twitter or Linkedin
Wanna know more about me? Come here!
SilvenLEAF.github.io
Top comments (0)