sqlite-things/start.py

70 lines
1.7 KiB
Python

import argparse
import sqlite3
from tabulate import tabulate
def parse_args():
"""
Parses the arguments from the CLI
"""
parser = argparse.ArgumentParser(description="Testtool Adress Changes")
parser.add_argument(
'-c', '--create',
help='Creates an example database',
action='store_true'
)
parser.add_argument(
'-i', '--insert',
help='insert some example data',
action='store_true'
)
parser.add_argument(
'-p', '--print',
choices=['table', 'string'],
default='table',
help='prints all the cells from the table',
)
parser.add_argument(
'-u', '--update',
action='store_true',
help='Updates the city names'
)
return parser.parse_args()
def execute_sql(args):
db = sqlite3.connect("test.db")
cur = db.cursor()
print(args.print)
if args.create:
print("Creating")
with open ('sql/create_db.sql', 'r') as sql_file:
cur.executescript(sql_file.read())
elif args.insert:
print("insert")
with open ('sql/insert_data.sql', 'r') as sql_file:
cur.executescript(sql_file.read())
elif args.update:
print("Updating database")
with open ('sql/update_sg.sql', 'r') as sql_file:
cur.executescript(sql_file.read())
elif args.print:
cur.execute("SELECT * from customers")
if args.print == 'table':
print(tabulate(cur.fetchall()))
else:
print(cur.fetchall())
db.commit()
db.close()
def main():
args = parse_args()
execute_sql(args)
if __name__ == '__main__':
main()