memory (storage): adjustements to SQLAlchemy mapping to match current state of database

This commit is contained in:
Goffi 2021-06-25 10:17:34 +02:00
commit 71db80fc4d

View file

@ -106,7 +106,14 @@ class JID(TypeDecorator):
class Profile(Base): class Profile(Base):
__tablename__ = "profiles" __tablename__ = "profiles"
id = Column(Integer, primary_key=True) id = Column(
Integer,
primary_key=True,
nullable=True,
# settings autoincrement would have negative performance impact
# cf. https://sqlite.org/autoinc.html
autoincrement=False
)
name = Column(Text, unique=True) name = Column(Text, unique=True)
params = relationship("ParamInd", back_populates="profile", passive_deletes=True) params = relationship("ParamInd", back_populates="profile", passive_deletes=True)
@ -121,7 +128,11 @@ class Profile(Base):
class Component(Base): class Component(Base):
__tablename__ = "components" __tablename__ = "components"
profile_id = Column(ForeignKey("profiles.id", ondelete="CASCADE"), primary_key=True) profile_id = Column(
ForeignKey("profiles.id", ondelete="CASCADE"),
nullable=True,
primary_key=True
)
entry_point = Column(Text, nullable=False) entry_point = Column(Text, nullable=False)
profile = relationship("Profile") profile = relationship("Profile")
@ -129,7 +140,7 @@ class Component(Base):
class MessageType(Base): class MessageType(Base):
__tablename__ = "message_types" __tablename__ = "message_types"
type = Column(Text, primary_key=True) type = Column(Text, primary_key=True, nullable=True)
class History(Base): class History(Base):
@ -142,7 +153,7 @@ class History(Base):
) )
) )
uid = Column(Text, primary_key=True) uid = Column(Text, primary_key=True, nullable=True)
stanza_id = Column(Text) stanza_id = Column(Text)
update_uid = Column(Text) update_uid = Column(Text)
profile_id = Column(ForeignKey("profiles.id", ondelete="CASCADE")) profile_id = Column(ForeignKey("profiles.id", ondelete="CASCADE"))
@ -250,9 +261,18 @@ class History(Base):
class Message(Base): class Message(Base):
__tablename__ = "message" __tablename__ = "message"
__table_args__ = (
Index("message__history_uid", "history_uid"),
)
id = Column(Integer, primary_key=True) id = Column(
history_uid = Column(ForeignKey("history.uid", ondelete="CASCADE"), index=True) Integer,
primary_key=True,
nullable=True,
# cf. note for Profile.id
autoincrement=False
)
history_uid = Column(ForeignKey("history.uid", ondelete="CASCADE"))
message = Column(Text) message = Column(Text)
language = Column(Text) language = Column(Text)
@ -265,9 +285,18 @@ class Message(Base):
class Subject(Base): class Subject(Base):
__tablename__ = "subject" __tablename__ = "subject"
__table_args__ = (
Index("subject__history_uid", "history_uid"),
)
id = Column(Integer, primary_key=True) id = Column(
history_uid = Column(ForeignKey("history.uid", ondelete="CASCADE"), index=True) Integer,
primary_key=True,
nullable=True,
# cf. note for Profile.id
autoincrement=False,
)
history_uid = Column(ForeignKey("history.uid", ondelete="CASCADE"))
subject = Column(Text) subject = Column(Text)
language = Column(Text) language = Column(Text)
@ -280,9 +309,18 @@ class Subject(Base):
class Thread(Base): class Thread(Base):
__tablename__ = "thread" __tablename__ = "thread"
__table_args__ = (
Index("thread__history_uid", "history_uid"),
)
id = Column(Integer, primary_key=True) id = Column(
history_uid = Column(ForeignKey("history.uid", ondelete="CASCADE"), index=True) Integer,
primary_key=True,
nullable=True,
# cf. note for Profile.id
autoincrement=False,
)
history_uid = Column(ForeignKey("history.uid", ondelete="CASCADE"))
thread_id = Column(Text) thread_id = Column(Text)
parent_id = Column(Text) parent_id = Column(Text)
@ -295,18 +333,18 @@ class Thread(Base):
class ParamGen(Base): class ParamGen(Base):
__tablename__ = "param_gen" __tablename__ = "param_gen"
category = Column(Text, primary_key=True, nullable=False) category = Column(Text, primary_key=True, nullable=True)
name = Column(Text, primary_key=True, nullable=False) name = Column(Text, primary_key=True, nullable=True)
value = Column(Text) value = Column(Text)
class ParamInd(Base): class ParamInd(Base):
__tablename__ = "param_ind" __tablename__ = "param_ind"
category = Column(Text, primary_key=True, nullable=False) category = Column(Text, primary_key=True, nullable=True)
name = Column(Text, primary_key=True, nullable=False) name = Column(Text, primary_key=True, nullable=True)
profile_id = Column( profile_id = Column(
ForeignKey("profiles.id", ondelete="CASCADE"), primary_key=True, nullable=False ForeignKey("profiles.id", ondelete="CASCADE"), primary_key=True, nullable=True
) )
value = Column(Text) value = Column(Text)
@ -316,18 +354,18 @@ class ParamInd(Base):
class PrivateGen(Base): class PrivateGen(Base):
__tablename__ = "private_gen" __tablename__ = "private_gen"
namespace = Column(Text, primary_key=True, nullable=False) namespace = Column(Text, primary_key=True, nullable=True)
key = Column(Text, primary_key=True, nullable=False) key = Column(Text, primary_key=True, nullable=True)
value = Column(Text) value = Column(Text)
class PrivateInd(Base): class PrivateInd(Base):
__tablename__ = "private_ind" __tablename__ = "private_ind"
namespace = Column(Text, primary_key=True, nullable=False) namespace = Column(Text, primary_key=True, nullable=True)
key = Column(Text, primary_key=True, nullable=False) key = Column(Text, primary_key=True, nullable=True)
profile_id = Column( profile_id = Column(
ForeignKey("profiles.id", ondelete="CASCADE"), primary_key=True, nullable=False ForeignKey("profiles.id", ondelete="CASCADE"), primary_key=True, nullable=True
) )
value = Column(Text) value = Column(Text)
@ -337,18 +375,18 @@ class PrivateInd(Base):
class PrivateGenBin(Base): class PrivateGenBin(Base):
__tablename__ = "private_gen_bin" __tablename__ = "private_gen_bin"
namespace = Column(Text, primary_key=True, nullable=False) namespace = Column(Text, primary_key=True, nullable=True)
key = Column(Text, primary_key=True, nullable=False) key = Column(Text, primary_key=True, nullable=True)
value = Column(LegacyPickle) value = Column(LegacyPickle)
class PrivateIndBin(Base): class PrivateIndBin(Base):
__tablename__ = "private_ind_bin" __tablename__ = "private_ind_bin"
namespace = Column(Text, primary_key=True, nullable=False) namespace = Column(Text, primary_key=True, nullable=True)
key = Column(Text, primary_key=True, nullable=False) key = Column(Text, primary_key=True, nullable=True)
profile_id = Column( profile_id = Column(
ForeignKey("profiles.id", ondelete="CASCADE"), primary_key=True, nullable=False ForeignKey("profiles.id", ondelete="CASCADE"), primary_key=True, nullable=True
) )
value = Column(LegacyPickle) value = Column(LegacyPickle)