-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
0cb903f
commit 877b0e1
Showing
1 changed file
with
70 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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() |