diff --git a/tohu/item_list.py b/tohu/item_list.py
index <HASH>..<HASH> 100644
--- a/tohu/item_list.py
+++ b/tohu/item_list.py
@@ -4,6 +4,7 @@ import re
 import pandas as pd
 from operator import attrgetter
 from sqlalchemy import create_engine, inspect
+from sqlalchemy.schema import CreateSchema
 
 logger = logging.getLogger('tohu')
 
@@ -167,6 +168,10 @@ class ItemList:
         engine = create_engine(url)
         ins = inspect(engine)
 
+        if schema is not None and schema not in ins.get_schema_names():
+            logger.debug(f"Creating non-existing schema: '{schema}'")
+            engine.execute(CreateSchema(schema))
+
         if table_name in ins.get_table_names(schema=schema) and if_exists == 'do_nothing':
             logger.debug("Table already exists (use if_exists='replace' or if_exists='append' to modify it).")
             return
Create schema if it doesn't exist