-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path11-model_state_insert.py
executable file
·74 lines (58 loc) · 1.87 KB
/
11-model_state_insert.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/python3
"""
Module: 11-model_state_insert.py
Author: TheWatcher01
Date: 21/03/2024
Description:
Script adds the State object “Louisiana” to the database hbtn_0e_6_usa.
It takes 3 arguments: mysql username, mysql password, and database name.
Uses SQLAlchemy to connect to MySQL server running on localhost at port 3306.
Prints the new states.id after creation.
The code is not executed when imported.
"""
# Import necessary modules
from sqlalchemy.orm import sessionmaker
from Utils.check_MySQL import check_mysql
from Utils.engine_setup import setup_engine
from model_state import Base, State
import sys
def add_state():
"""
Function to add the State object “Louisiana” to the database.
"""
# Check if the correct number of arguments are provided
if len(sys.argv) != 4:
print("Usage: ./11-model_state_insert.py username password database")
return
# Retrieve the arguments passed to the script
username = sys.argv[1]
password = sys.argv[2]
database = sys.argv[3]
try:
# Create an engine
engine = setup_engine(username, password, database)
# Check if engine was successfully created
if engine is None:
return
# Create a Session
Session = sessionmaker(bind=engine)
session = Session()
# Create a new State object
new_state = State(name="Louisiana")
# Add the new State object to the session
session.add(new_state)
# Commit the transaction
session.commit()
# Print the id of the new State object
print(new_state.id)
except Exception as e:
# Print the full exception
print(e)
finally:
# Close the Session
if session:
session.close()
# Ensure the script is not executed when imported
if __name__ == "__main__":
check_mysql()
add_state()