首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用烧瓶-sqlqcodegen生成烧瓶-AppBuilder模型

用烧瓶-sqlqcodegen生成烧瓶-AppBuilder模型
EN

Stack Overflow用户
提问于 2016-07-29 11:25:16
回答 1查看 1.8K关注 0票数 2

我是Python和Flask生态系统的初学者,试图为一个研究项目创建一个概念证明的Web应用程序。我正在使用DebianLinux7.9,PostgreSQL 9.5,SQLAlchemy (最新)和(最新)。由于手工创建模型很繁琐,而且容易出错,所以我搜索了强大的互联网并发现了flask-sqlacodegen项目(注意,这是sqlacodegen的一个分支,为烧瓶用户提供了改进的功能)。我从GitHub安装了GitHub(克隆回购,然后运行python setup.py install)。但是,当试图使用它生成模型时,它会产生一个错误,如下所示:

代码语言:javascript
复制
> sqlacodegen postgresql+psycopg2://USER:PASS@HOST/DBNAME --flask

Traceback (most recent call last):
  File "/usr/local/bin/sqlacodegen", line 9, in <module>
    load_entry_point('sqlacodegen==1.1.5.pre2', 'console_scripts', 'sqlacodegen')()
  File "/usr/local/lib/python2.7/dist-packages/sqlacodegen-1.1.5.pre2-py2.7.egg/sqlacodegen/main.py", line 57, in main
    args.flask, fkcols)
  File "/usr/local/lib/python2.7/dist-packages/sqlacodegen-1.1.5.pre2-py2.7.egg/sqlacodegen/codegen.py", line 597, in __init__
    model = ModelClass(table, links[table.name], inflect_engine, not nojoined)
  File "/usr/local/lib/python2.7/dist-packages/sqlacodegen-1.1.5.pre2-py2.7.egg/sqlacodegen/codegen.py", line 319, in __init__
    relationship_ = ManyToOneRelationship(self.name, target_cls, constraint, inflect_engine)
  File "/usr/local/lib/python2.7/dist-packages/sqlacodegen-1.1.5.pre2-py2.7.egg/sqlacodegen/codegen.py", line 455, in __init__
    colname = constraint.columns[0]
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/_collections.py", line 194, in __getitem__
    return self._data[key]
KeyError: 0

怎么一回事?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-07-31 01:53:47

在一些互联网搜索中,我在GitHub上遇到了一个问题,它描述了完全相同的问题。然而,当时的最新建议产生了另一个错误,而不是原来的错误。在讨论flask-sqlcodegen的作者,它似乎有一个拉请求(PR)善意地提供了一个项目贡献者,显然应该解决问题。在更新我的本地存储库之后,然后重建和重新安装软件,我成功地为我的数据库生成了模型。整个过程由以下步骤组成。

  1. 使用本地回购的flask-sqlcodegen切换到目录。
  2. 如果你像我一样做了任何改变,就把它们藏起来:git stash
  3. 更新回购:git pull origin master (现在包括那个PR)。
  4. 重建/安装软件:python setup.py install
  5. 如果需要先前的更改,请还原它们:git stash pop。否则,丢弃它们:git reset --hard
  6. 切换到您的Flask应用程序目录并自动生成模型,如下所示。 sqlacodegen --flask --outfile models.py postgresql+psycopg2://USER:PASS@HOST/DBNAME

Acknowledgements:向Kamil (flask-sqlcodegen的作者)表示感谢,感谢您提供了很好的软件和快速而有帮助的反馈,并感谢Alisdair的宝贵请求。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38657634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档