From 877b0e1feef45ee5dabdcd79dd5fd0866096f7c8 Mon Sep 17 00:00:00 2001 From: Erica Greene Date: Wed, 25 Dec 2024 23:21:04 -0500 Subject: [PATCH] Add files via upload --- create_tables (1).py | 70 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 create_tables (1).py diff --git a/create_tables (1).py b/create_tables (1).py new file mode 100644 index 0000000..cba6815 --- /dev/null +++ b/create_tables (1).py @@ -0,0 +1,70 @@ +import psycopg2 +from sql_queries import create_table_queries, drop_table_queries + + +def create_database(): + """ + - Creates and connects to the sparkifydb + - Returns the connection and cursor to sparkifydb + """ + + # connect to default database + conn = psycopg2.connect("host=127.0.0.1 dbname=studentdb user=student password=student") + conn.set_session(autocommit=True) + cur = conn.cursor() + + # create sparkify database with UTF8 encoding + cur.execute("DROP DATABASE IF EXISTS sparkifydb") + cur.execute("CREATE DATABASE sparkifydb WITH ENCODING 'utf8' TEMPLATE template0") + + # close connection to default database + conn.close() + + # connect to sparkify database + conn = psycopg2.connect("host=127.0.0.1 dbname=sparkifydb user=student password=student") + cur = conn.cursor() + + return cur, conn + + +def drop_tables(cur, conn): + """ + Drops each table using the queries in `drop_table_queries` list. + """ + for query in drop_table_queries: + cur.execute(query) + conn.commit() + + +def create_tables(cur, conn): + """ + Creates each table using the queries in `create_table_queries` list. + """ + for query in create_table_queries: + cur.execute(query) + conn.commit() + + +def main(): + """ + - Drops (if exists) and Creates the sparkify database. + + - Establishes connection with the sparkify database and gets + cursor to it. + + - Drops all the tables. + + - Creates all tables needed. + + - Finally, closes the connection. + """ + cur, conn = create_database() + + drop_tables(cur, conn) + create_tables(cur, conn) + + conn.close() + + +if __name__ == "__main__": + main() \ No newline at end of file