草庐IT

SQLALCHEMY_TRACK_MODIFICATIONS

全部标签

python - 如何在 sqlalchemy 声明中设置属性默认值?

在SQLAlchemyDeclarative中,如何为列设置默认值,以便transient或挂起的对象实例将具有这些默认值?一个简短的例子:fromsqlalchemyimportColumn,Integer,Stringfromsqlalchemy.ext.declarativeimportdeclarative_baseBase=declarative_base()classA(Base):__tablename__="A"id=Column(Integer,primary_key=True)word=Column(String,default="adefault")a=A()pr

python - SqlAlchemy:将继承类型从一种转换为另一种

假设我在同一个数据库表上有两种不同的类型(单表继承):classEmployee(db.Model):id=db.Column(db.Integer,primary_key=True)name=db.Column(db.String,nullable=False)discriminator=db.Column('type',String)__mapper_args__={'polymorphic_on':discriminator}classManager(Employee):__mapper_args__={'polymorphic_identity':'manager'}divis

python - 使用 sqlalchemy 和 elixir 更新 sqlite 数据库模式

我创建了一个python应用程序,它使用elixir/sqlalchemy来存储数据。该软件的第二个版本要求更新在以前版本中创建的所有文件,以便添加/删除表和列。我的问题是:我怎样才能做到这一点?我知道sqlalchemy-migrate,但我必须说我觉得它很困惑。它没有提到现有数据会发生什么。此外,sqlite有reducedALTERTABLEsupport,那么如果我尝试删除列,migrate会做什么?还有其他使用迁移的方法吗? 最佳答案 您所说的是一个众所周知且相当复杂的问题。它被称为数据库迁移。每个好的项目都有一些策略来描

python - SQLAlchemy:避免重复声明式类定义

我正在使用SQLAlchemy,我的对象模型中的许多类都具有相同的两个属性:id和(整数和主键)以及名称(字符串)。我试图避免像这样在每个类中声明它们:classC1(declarative_base()):id=Column(Integer,primary_key=True)name=Column(String)#...classC2(declarative_base()):id=Column(Integer,primary_key=True)name=Column(String)#...这样做的好方法是什么?我尝试使用元类,但它还没有用。 最佳答案

python - SQLAlchemy 查询具有关系计数的对象

假设我有SQLAlchemyORM类:classSession(db.Model):id=db.Column(db.Integer,primary_key=True)user_agent=db.Column(db.Text,nullable=False)classRun(db.Model):id=db.Column(db.Integer,primary_key=True)session_id=db.Column(db.Integer,db.ForeignKey('session.id'))session=db.relationship('Session',backref=db.back

python - 从 SQLalchemy 中的自引用表创建树

我正在为一个面向iPhone的网站在Flask中构建一个基本的CMS,但我遇到了一些小问题。我有一个非常小的数据库,只有1个表(页面)。这是模型:classPage(db.Model):__tablename__='pages'id=db.Column(db.Integer,primary_key=True)title=db.Column(db.String(100),nullable=False)content=db.Column(db.Text,nullable=False)parent_id=db.Column(db.Integer,db.ForeignKey("pages.id

python - 使用 ID 而不是对象填充 SQLAlchemy 多对多关系

情况:因此,我在SQLAlchemy中使用associationtable建立了基本的多对多关系.比如一个人可以参加很多party,一个party可以有很多人做嘉宾:classPerson(Base):__tablename__='person'id=Column(Integer,primary_key=True)name=db.Column(db.String(50))classSexyParty(Base):__tablename__='sexy_party'id=Column(Integer,primary_key=True)guests=relationship('Person

python - 计算多对多关系中的行数 (SQLAlchemy)

我在博客条目和标签之间建立了多对多关系。现在我想知道特定标签有多少个条目。设想以下模型(简化):rel_entries_tags=Table('rel_entries_tags',Base.metadata,Column('entry_id',Integer,ForeignKey('entries.id')),Column('tag_id',Integer,ForeignKey('tags.id')))classEntry(Base):__tablename__='entries'id=Column(Integer,primary_key=True)title=Column(Strin

python - 如何按字符串长度过滤 `sqlalchemy`?

如何在sqlalchemy中按字符串长度过滤?此代码段:sess.query(db.ArticlesTable).filter(or_(and_(db.ArticlesTable.shorttext.length>0),...给我以下错误:File"./aggregate_news.py",line69,inis_acceptabledb.ArticlesTable.shorttext.length>0),File".../sqlalchemy/orm/attributes.py",line211,in__getattr__key)AttributeError:Neither'Inst

python - SQLAlchemy 外键找不到表

当我尝试实例化ConsumerAdvice类时出现此错误。Foreignkeyassociatedwithcolumn'tbConsumerAdvice.ConsumerAdviceCategory_ID'couldnotfindtable'tbConsumerAdviceCategories'withwhichtogenerateaforeignkeytotargetcolumn'ID_ConsumerAdviceCategories'classConsumerAdviceCategory(Base):__tablename__='tbConsumerAdviceCategories