A Guide to Setting Up Pgadmin for Development on Windows(Updated)
Tags: postgres, webdev, opensource, tutorial
Published: 2023-10-12 14:16:20

In my last guide on this topic, some instructions may not have worked for everyone who attempted it.
This time around, the issues with my last guide have been resolved and thoroughly tested to see if they work for anyone and everyone wanting to configure pgadmin 4 for development on a Windows system.

### Install prerequisites
First and foremost, please ensure that you have all of the following requirements fulfilled for your system.

git (https://git-scm.com/downloads)
Node.js 16 and above (https://nodejs.org/en/download)
yarn (https://classic.yarnpkg.com/lang/en/docs/install)
Python 3.7 and above (https://www.python.org/downloads/)
PostgreSQL server (https://www.postgresql.org/download)

### Steps

1. 1. Open a terminal of your choice, I will be using gitbash.
2. Create a directory for your setup and navigate to the directory

```
mkdir pgadmin
cd pgadmin
```
3. Clone the pgadmin 4 git repository

```
git clone https://github.com/pgadmin-org/pgadmin4.git
```

You can now begin building the runtime for your frontend

4. Navigate to `/pgadmin4/runtime` directory (while in the `pgadmin` directory created above)

```
cd pgadmin4/runtime
```
5. Run the following command and copy the contents of the `dev_config.json.in` file

```
cat dev_config.json.in
```
The contents will look something like this:

```
{
    "pythonPath": "C:/Python38/python.exe",
    "pgadminFile": "../web/pgAdmin4.py"
}
```
Replace the string stored in `pythonPath` with the actual path to `python.exe` stored on your system.

6. Now run this command to create a new file called `dev_config.json` and open it for file writing

```
cat > dev_config.json
```
A blank line will appear when you enter this command. Paste the contents of the file copied earlier and hit `CTRL + D`

7. Run the command

```
yarn install
```
8. Execute the runtime by running this command

```
node_modules/nw/nwjs/nw
```

We can now configure the Python environment for the backend

9. Navigate out of the runtime directory

```
cd ..
```
10. Create a virtual environment using whatever name you wish. I named my environment `pgenv`

```
python -m virtualenv pgenv
```
11. Activate the environment

```
source pgenv/Scripts/activate
```
12. Upgrade to the latest version of pip

```
pip install --upgrade pip
```
13. Add the path to your PostgreSQL installation bin directory to your environment variables with this command

```
export PATH="$PATH:/c/Program Files/PostgreSQL/13/bin"
```
I'm using PostgreSQL v13 but you can change the path to match the version you have installed.
14. Install dependencies

```
pip install -r requirements.txt
```
15. Open up a second terminal and navigate to the web directory. Then run the following command:
```
yarn run webpacker --watch
```
16. In the first terminal, navigate to the web directory again. Ensure that your virtual environment has been activated and start the server by running
```
python pgAdmin.py
```

You will get a message like `Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your browser.`. Navigate to `http://127.0.0.1:5050` in your browser.