小编Ror*_*art的帖子

让SQLAlchemy在create_all上发出CREATE SCHEMA

我有一个带有架构参数的SqlAlchemy模型,如下所示:

Base = declarative_base()

class Road(Base):
  __tablename__ = "roads"
  __table_args__ = {'schema': 'my_schema'}
  id = Column(Integer, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

当我使用Base.metadata.create_all(engine)时,它正确地在前面发出一个带有模式名称的CREATE TABLE,就像这样"CREATE TABLE my_schema.roads("但Postgresql正确地抱怨模式不存在.

我错过了让SqlAlchemy发布CREATE SCHEMA my_schema的步骤,还是我必须手动调用它?

python postgresql sqlalchemy

22
推荐指数
3
解决办法
1万
查看次数

SQLAlchemy双向关系关联代理

更新:

对于有此问题的任何人,使用最新的SQLAlchemy,此行为已得到修复.

原始问题:

我遇到了使关联代理正确更新的问题.

使用此处的示例模型:http://docs.sqlalchemy.org/en/rel_0_7/orm/extensions/associationproxy.html#simplifying-association-objects

但是使用以下行更改UserKeyword:

keyword = relationship("Keyword", backref=backref("user_keywords", cascade="all, delete-orphan"))
Run Code Online (Sandbox Code Playgroud)

并将其添加到关键字:

users = association_proxy('user_keywords', 'user')
Run Code Online (Sandbox Code Playgroud)

因此,关键字实例具有用户列表.

以下按预期工作:

>>> rory = User("rory")
>>> session.add(rory)
>>> chicken = Keyword('chicken')
>>> session.add(chicken)
>>> rory.keywords.append(chicken)
>>> chicken.users
[<__main__.User object at 0x1f1c0d0>]
>>> chicken.user_keywords
[<__main__.UserKeyword object at 0x1f1c450>]
Run Code Online (Sandbox Code Playgroud)

但删除做奇怪的事情.从关联代理列表中删除如下:

>>> rory.keywords.remove(chicken)
Run Code Online (Sandbox Code Playgroud)

SA尝试将其中一个外键列设置为null时,会导致完整性错误.

这样做:

>>> rory.user_keywords.remove(rory.user_keywords[0])
Run Code Online (Sandbox Code Playgroud)

结果如下:

>>> chicken.users
[None]
Run Code Online (Sandbox Code Playgroud)

我错过了一些显而易见的事情吗?

python sqlalchemy

8
推荐指数
1
解决办法
1967
查看次数

使用std :: ifstream,std :: istream_iterator和std :: copy不会读取整个文件

我有以下代码,我一直在188字节文件上使用:

std::ifstream is("filename", std::ios::binary);

std::vector<uint8_t> buffer;
std::istream_iterator<uint8_t> i_input(is);
std::copy(i_input, std::istream_iterator<uint8_t>(),
          std::back_inserter(buffer));

std::cout << buffer.size();
Run Code Online (Sandbox Code Playgroud)

但是它只读取188个字节的186个字节.

我已经使用hexeditor确认了文件大小ls -al.

c++ stl

5
推荐指数
2
解决办法
5750
查看次数

编写Django单元测试视图

有没有人有一个好的tute /为视图编写好的测试的例子?我发现的大多数东西都是从2008年中期开始的,这只是一点帮助.

django django-testing

3
推荐指数
1
解决办法
4109
查看次数

标签 统计

python ×2

sqlalchemy ×2

c++ ×1

django ×1

django-testing ×1

postgresql ×1

stl ×1