diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 45b33116dd7e29ac56477dddcd850b0dd4e00efb..57bca0892f4e9d2f06d2f48394a9600a1363a88b 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -66,7 +66,7 @@
       "label": "Populate database",
       "type": "shell",
       "group": "build",
-      "command": "env/Scripts/python populate.py",
+      "command": "env/Scripts/python main.py populate dev lite",
       "problemMatcher": [],
       "options": {
         "cwd": "${workspaceFolder}/server"
diff --git a/server/main.py b/server/main.py
index 589a28452076f6793200c528b80b7739a64ab423..43495dcd5be0b0cc81edceff96e7c05e548ef6b9 100644
--- a/server/main.py
+++ b/server/main.py
@@ -1,33 +1,44 @@
 import sys
 
-from app import create_app
+from app import create_app, db
+from populate import create_default_items
 
 """
 Action-arg1:    server(default), populate
-Mode-arg2:      dev(default), prod, test
+Mode-arg2:      dev(default), prod
 Database-arg3:  lite(default), postgre
 """
 
+
+def start_server(mode, database):
+    print(f"Starting server in {mode} mode with database {database}...")
+    app, sio = create_app(mode, database)
+    sio.run(app)
+
+
+def populate_server(mode, database):
+    print(f"Populating server in {mode} mode with database {database}...")
+    app, _ = create_app(mode, database)
+
+    with app.app_context():
+        db.drop_all()
+        db.create_all()
+        create_default_items()
+
+    print("Task populate done")
+
+
 if __name__ == "__main__":
     argv = sys.argv
 
-    # action = argv[1] if len(argv) > 1 else "server"
-    mode = argv[1] if len(argv) > 1 else "dev"
-    # database = argv[3] if len(argv) > 3 else "lite"
-
-    # if mode == "prod":
-    # database = "postgre"
+    action = argv[1] if len(argv) > 1 else "server"
+    mode = argv[2] if len(argv) > 2 else "dev"
+    database = argv[3] if len(argv) > 3 else "lite"
 
-    if mode == "dev" or mode == "test":
-        database = argv[2] if len(argv) > 2 else "lite"
-    elif mode == "prod":
+    if mode == "prod":
         database = "postgre"
-    else:
-        print("Invalid args")
-        print("Dev args: no args, 'dev lite' or 'dev postgre'")
-        print("Prod args: 'prod'\n")
-        sys.exit(-1)
 
-    print(f"Starting server in {mode} mode with database {database}...")
-    app, sio = create_app(mode, database)
-    sio.run(app)
+    if action == "server":
+        start_server(mode, database)
+    elif action == "populate":
+        populate_server(mode, database)
diff --git a/server/populate.py b/server/populate.py
index 714d8ae3900abd5345a702617132e14a1ffb75f5..87160134264c7e5878abbb5b0e54277a129adff2 100644
--- a/server/populate.py
+++ b/server/populate.py
@@ -144,6 +144,7 @@ def create_default_items():
     # dbc.add.question_answer("ett svar som ger 3p", 3, 1, 3)
 
 
+"""
 if __name__ == "__main__":
     argv = sys.argv
 
@@ -169,3 +170,4 @@ if __name__ == "__main__":
         create_default_items()
 
     print("Task populating done")
+"""