#!/usr/bin/env python3 #To import data you need a excel style CSV (";" as seperator) with the first as short url (e.g. kurz.ml/example) and in the seccond row the long url (e.g http://example.com). #Then run docker -it <container_name> python3 import.py Now you can paste the CSV as text and press enter again at the end import sqlite3 import os from tqdm import tqdm #If the database size is extreme you will see the progress, but normaly you see direct the 100%. def table_check(): #Check if database exists create_table = """ CREATE TABLE WEB_URL( LONG_URL TEXT NOT NULL, SHORT_URL TEXT NOT NULL ); """ with sqlite3.connect('db/urls.db') as conn: cursor = conn.cursor() try: #Try making the database structure, if fails Database was already created. cursor.execute(create_table) except sqlite3.OperationalError: pass table_check() with sqlite3.connect('db/urls.db') as conn: cursor = conn.cursor() lines = [] print("ready to recive data, please paste your data to import and press ENTER to import all") while True: #read input line, if line is empty proceed to next step. line = input() if line: lines.append(line) else: break text = lines for lines in tqdm(text): SHORT_URL = lines.split(";")[0].replace("\n", "").replace("\r","") #Split the CSV at the ";" then use the first one and replace all linebreaks LONG_URL = lines.split(";")[1].replace("\n", "").replace("\r","") #Split the CSV at the ";" then use the seccond one and replace all linebreaks res = cursor.execute( #Insert the data in the SQL table 'INSERT INTO WEB_URL (LONG_URL, SHORT_URL) VALUES (?, ?)', [LONG_URL, SHORT_URL.lower()] #replace big letters in short url with small letters. )