草庐IT

sqlalchemy-migrate

全部标签

python - 在 Flask-sqlalchemy 和 Postgresql 中使用 JSON 类型

背景:我正在构建一个Flask应用程序,并且我已将我的数据存储到一个postgresql数据库和一个JSON列类型中。任务:在我的View函数中,我想通过JSON列中的{Key:Value}订购数据库查询已完成:我已成功在psql命令行中执行此查询,例如使用以下命令:select*fromtargetwherecast(product->>'profit'asfloat)>100orderbycast(product->>'salesrank'asinteger)asc;问题:我无法在我的代码中复制此查询(请参阅下面额外信息部分中的模型代码)fromappimportapp,dbfro

python - SQLAlchemy 默认日期时间

这是我的声明模型:importdatetimefromsqlalchemyimportColumn,Integer,DateTimefromsqlalchemy.ext.declarativeimportdeclarative_baseBase=declarative_base()classTest(Base):__tablename__='test'id=Column(Integer,primary_key=True)created_date=DateTime(default=datetime.datetime.utcnow)但是,当我尝试导入此模块时,我收到此错误:Tracebac

python - SQLAlchemy:打印实际查询

我真的很希望能够为我的应用程序打印出有效的SQL,包括值,而不是绑定(bind)参数,但是在SQLAlchemy中如何做到这一点并不明显(按照设计,我很确定)。有没有人以一般的方式解决了这个问题? 最佳答案 在绝大多数情况下,SQLAlchemy语句或查询的“字符串化”很简单:print(str(statement))这适用于ORMQuery以及任何select()或其他语句。注意:以下详细答案正在sqlalchemydocumentation上维护。.要将语句编译为特定方言或引擎,如果语句本身尚未绑定(bind)到某个方言,您可以

python - 在 SQLAlchemy 中使用 OR

我看过throughthedocs而且我似乎无法找出如何在SQLAlchemy中进行OR查询。我只想做这个查询。SELECTaddressFROMaddressbookWHEREcity='boston'AND(lastname='bulger'ORfirstname='whitey')应该是这样的addr=session.query(AddressBook).filter(City=="boston").filter(????) 最佳答案 来自tutorial:fromsqlalchemyimportor_filter(or_(U

python - SQLAlchemy中filter和filter_by的区别

谁能解释SQLAlchemy中filter和filter_by函数之间的区别?我应该使用哪一个? 最佳答案 filter_by用于使用常规kwargs对列名进行简单查询,例如db.users.filter_by(name='Joe')同样可以使用filter来完成,而不是使用kwargs,而是使用'=='相等运算符,该运算符已在db.users.name对象上重载:db.users.filter(db.users.name=='Joe')您还可以使用filter编写更强大的查询,例如:db.users.filter(or_(db.u

python - 格式化 SQLAlchemy 代码

我们正在尝试关注PEP8格式化我们的Python代码并保持在每行80个字符以下的指南。我们的SQLAlchemy行特别麻烦,有很多链式方法和大量复杂的参数、逻辑和嵌套函数。对于使用PEP8的约束格式化PythonSQLAlchemy是否有任何特定的最佳实践?我找到的最接近的答案是here,但我正在处理的代码要复杂得多。 最佳答案 来到这里希望有更好的解决方案,但我想我更喜欢括号环绕样式:subkeyword=(Session.query(Subkeyword.subkeyword_id,Subkeyword.subkeyword_w

ruby-on-rails - MySQL 问题 - RAILS_ENV=production bundle exec rake db :migrate

由于detailedmanual,我只是将redmine安装到我的服务器上.一切顺利,但最后一步因一些错误而失败,我不知道如何修复它。命令是RAILS_ENV=productionbundleexecrakedb:migrate输出错误Youcannotspecifythesamegemtwicewithdifferentversionrequirements.Youspecified:mysql(>=0)andmysql(~>2.9.1)gem列表***LOCALGEMS***actionmailer(3.2.15)actionpack(3.2.15)activemodel(3.2.

ruby-on-rails - ActiveRecord::Migration.say_with_time() 做

当我们应该在种子文件中使用它时。在rails框架事件记录中。ActiveRecord::Migration.say_with_time()do 最佳答案 此方法获取一个block并对其进行基准测试。打印出花费的时间和受影响的行数。例如来自文档:say_with_time"Revertingallserviceratestonil."doService.update_all(:rate,nil)end#Output--Revertingallserviceratestonil.->0.3451s->2233rows

ruby-on-rails - 防止 rake migrate 创建外键约束

我们有一个情况,其中一个表列名称使用后缀“_id”。迁移代码:create_table:companiesdo|t|t.integer:ref_idt.string:nameend当运行db:migrate时,它​​失败了,因为rails试图为ref_id创建外键约束,但发现没有名为“refs”的表。在我们的例子中,“ref_id”不是外键。我们有没有办法阻止Rails为该列创建外键约束? 最佳答案 看来您有一个schema_plusgem。你可以这样做:create_table:companiesdo|t|t.integer:re

ruby - rake 数据库 :migrate runs into an error for an undefined method

我接管了一个由其他人建立的网站。我现在正试图在本地主机上启动并运行它。但是,当我迁移时,看起来以前的开发人员将代码放入可能依赖于已经存在的种子的迁移中。迁移文件如下所示。defupadd_column:supplies,:color,:stringSupply.where(:title=>"Shipped").first.update(:color=>'#e20ce8')enddefdownremove_column:supplies,:colorend当我运行rakedb:migrate时我在这个文件上遇到的错误是...rakeaborted!StandardError:Anerro