Skip to content

Commit 4f84609

Browse files
committed
Copy data to mongodb done.
1 parent 6b7cace commit 4f84609

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
import os
2+
3+
from pypi_org.data import db_session
4+
from pypi_org.nosql import mongo_setup
5+
6+
from pypi_org.data.users import User as SqlUser
7+
from pypi_org.nosql.users import User as MongoUser
8+
9+
from pypi_org.data.package import Package as SqlPackage
10+
from pypi_org.nosql.packages import Package as MongoPackage
11+
12+
from pypi_org.data.releases import Release as SqlRelease
13+
from pypi_org.nosql.releases import Release as MongoRelease
14+
15+
16+
def main():
17+
init_dbs()
18+
migrate_users()
19+
migrate_packages()
20+
migrate_releases()
21+
22+
23+
def migrate_users():
24+
if MongoUser.objects().count():
25+
return
26+
27+
session = db_session.create_session()
28+
sql_users = session.query(SqlUser).all()
29+
for sut in sql_users:
30+
su: SqlUser = sut
31+
u = MongoUser()
32+
u.created_date = su.created_date
33+
u.hashed_password = su.hashed_password
34+
u.name = su.name
35+
u.email = su.email
36+
u.save()
37+
38+
39+
def migrate_packages():
40+
if MongoPackage.objects().count():
41+
return
42+
43+
session = db_session.create_session()
44+
sql_packages = session.query(SqlPackage).all()
45+
for sup in sql_packages:
46+
sp: SqlPackage = sup
47+
p = MongoPackage()
48+
p.id = sp.id
49+
p.created_date = sp.created_date
50+
p.summary = sp.summary
51+
p.description = sp.description
52+
p.home_page = sp.home_page
53+
p.docs_url = sp.docs_url
54+
p.package_url = sp.package_url
55+
56+
p.author = sp.author_name
57+
p.author_email = sp.author_email
58+
59+
p.license = sp.license
60+
p.maintainers = [] # Find, load, and copy over maintainer IDs.
61+
62+
p.save()
63+
64+
65+
def migrate_releases():
66+
if MongoRelease.objects().count():
67+
return
68+
69+
session = db_session.create_session()
70+
sql_releases = session.query(SqlRelease).all()
71+
for srp in sql_releases:
72+
sr: SqlRelease = srp
73+
r = MongoRelease()
74+
r.created_date = sr.created_date
75+
r.comment = sr.comment
76+
r.major_ver = sr.major_ver
77+
r.minor_ver = sr.minor_ver
78+
r.build_ver = sr.build_ver
79+
r.url = sr.url
80+
r.size = sr.size
81+
r.package_id = sr.package_id
82+
83+
r.save()
84+
85+
86+
def init_dbs():
87+
db_file = os.path.abspath(
88+
os.path.join(
89+
os.path.dirname(__file__),
90+
'..',
91+
'db',
92+
'pypi.sqlite'
93+
))
94+
db_session.global_init(db_file)
95+
96+
mongo_setup.global_init()
97+
98+
99+
if __name__ == '__main__':
100+
main()

0 commit comments

Comments
 (0)