Skip to content
Snippets Groups Projects
clonedb.py 1.25 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jonas Leder's avatar
    Jonas Leder committed
    #!/usr/bin/env python3
    # This script will clone all entries from the database. I ised this to show what happens with extreme database sizes.
    #The output will be in excel-style CSV (";" instead of "," as column seperator.)
    
    import sqlite3
    from tqdm import tqdm
    
    create_table = """
        CREATE TABLE WEB_URL(
        ID INTEGER PRIMARY KEY AUTOINCREMENT,
        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 succeeded, exit, because there can't be any data.
            cursor.execute(create_table)
    
    Jonas Leder's avatar
    Jonas Leder committed
            raise Exception('No database Found', "Can't find the database ==> No data to clone")
    
    Jonas Leder's avatar
    Jonas Leder committed
        except sqlite3.OperationalError:
            pass
    
    conn = sqlite3.connect('db/urls.db')
    cursor = conn.cursor()
    res = cursor.execute('SELECT LONG_URL, SHORT_URL FROM WEB_URL WHERE 1') #read all data from database
    with sqlite3.connect('db/urls.db') as conn2:
        cursor2 = conn2.cursor()
        for entries in tqdm(res.fetchall()):
            cursor2.execute( #Insert the data in the SQL table
                'INSERT INTO WEB_URL (LONG_URL, SHORT_URL) VALUES (?, ?)',
                [entries[0], entries[1]]
            )
    
    print("Database duplicated")