-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmanage.py
106 lines (91 loc) · 3.16 KB
/
manage.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from api import create_app, db
from api.database.models.users import User
from api.database.models.quests import Quest
from api.database.models.user_quests import UserQuest
from api.database.models.encounters import Encounter
from api.database.models.actions import Action
from tests import db_drop_everything
import csv
import psycopg2
import os
import urllib.parse as urlparse
app = create_app()
migrate = Migrate(app, db)
manager = Manager(app)
# manage migrations
manager.add_command('db', MigrateCommand)
@manager.command
def routes():
print(app.url_map)
@manager.command
def db_seed():
db_drop_everything(db)
db.create_all()
#users
ian = User(username='iandouglas', email='[email protected]', xp=0)
shaunda = User(username='shaunda', email='[email protected]', xp=0)
olga = User(username='olga', email='[email protected]', xp=0)
caleb = User(username='caleb', email='[email protected]', xp=0)
curtis = User(username='curtis', email='[email protected]', xp=0)
jake = User(username='jake', email='[email protected]', xp=0)
carson = User(username='carson', email='[email protected]', xp=0)
george = User(username='george', email='[email protected]', xp=0)
#quests
url = urlparse.urlparse(os.environ.get('DATABASE_URL'))
dbname = url.path[1:]
host = url.hostname
user = url.username
password = url.password
conn = psycopg2.connect(f"host={host} dbname={dbname} user={user} password={password}")
cur = conn.cursor()
with open('./data/quests.csv', 'r') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
cur.execute(
"INSERT INTO quests VALUES(%s, %s, %s, %s, %s, %s)",
row
)
conn.commit()
#encounters
conn = psycopg2.connect(f"host={host} dbname={dbname} user={user} password={password}")
cur = conn.cursor()
with open('./data/encounters.csv', 'r') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
cur.execute(
"INSERT INTO encounters VALUES(%s, %s, %s, %s)",
row
)
conn.commit()
#actions
conn = psycopg2.connect(f"host={host} dbname={dbname} user={user} password={password}")
cur = conn.cursor()
with open('./data/actions.csv', 'r') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
cur.execute(
"INSERT INTO actions VALUES(%s, %s, %s)",
row
)
conn.commit()
db.session.add(ian)
db.session.add(shaunda)
db.session.add(olga)
db.session.add(caleb)
db.session.add(curtis)
db.session.add(jake)
db.session.add(carson)
db.session.add(george)
db.session.commit()
print(f'obj count: {len(db.session.query(User).all())}')
print(f'obj count: {len(db.session.query(Quest).all())}')
print(f'obj count: {len(db.session.query(UserQuest).all())}')
print(f'obj count: {len(db.session.query(Encounter).all())}')
print(f'obj count: {len(db.session.query(Action).all())}')
if __name__ == "__main__":
manager.run()