Skip to content

Commit e30fcb7

Browse files
committed
Relationships done, models defined.
1 parent 0785ed5 commit e30fcb7

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

src/ch9-sqlalchemy/final/pypi_sqlalchemy/pypi/data/packages.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import datetime
22

33
import sqlalchemy as sa
4+
import sqlalchemy.orm as orm
45
from pypi.data.modelbase import SqlAlchemyBase
6+
from pypi.data.releases import Release
57

68

79
class Package(SqlAlchemyBase):
@@ -21,8 +23,11 @@ class Package(SqlAlchemyBase):
2123

2224
license = sa.Column(sa.String, index=True)
2325

24-
# releases
25-
# maintainers
26+
releases = orm.relation("Release", order_by=[
27+
Release.major_ver.desc(),
28+
Release.minor_ver.desc(),
29+
Release.build_ver.desc(),
30+
], back_populates='package')
2631

2732
def __repr__(self):
2833
return '<Package {}>'.format(self.id)

src/ch9-sqlalchemy/final/pypi_sqlalchemy/pypi/data/releases.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import datetime
22
import sqlalchemy
3-
from sqlalchemy import orm
3+
import sqlalchemy.orm as orm
44
from pypi.data.modelbase import SqlAlchemyBase
55

66

@@ -19,7 +19,11 @@ class Release(SqlAlchemyBase):
1919
size = sqlalchemy.Column(sqlalchemy.BigInteger)
2020

2121
# Package relationship
22+
package_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey('packages.id'))
23+
package = orm.relation('Package', back_populates='releases')
2224

2325
@property
2426
def version_text(self):
2527
return '{}.{}.{}'.format(self.major_ver, self.minor_ver, self.build_ver)
28+
29+
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)