标签: zodb

ZODB在现实生活中

用Python编写应用程序,并使用各种ORM设置和直接SQL.所有这些都是罪恶的丑陋.

我一直在将ZODB视为一个对象存储,它看起来很有前途......你会推荐它吗?您的经验,问题和批评是什么,特别是关于开发人员的观点,可扩展性,完整性,长期维护和替代方案?有人用它开始一个项目并抛弃它吗?为什么?

虽然ZODB,Pypersyst和其他人背后的想法很有趣,但他们似乎缺乏热情:(

python zodb

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

对于生产Plone实例,cron自动化ZODB包的建议方法是什么?

看plone.org找到一种方法来定期打包我的实例的ZODB我只能找到http://plone.org/documentation/faq/how-do-i-pack-the-zodb,而不是谈论自动化包,但只是手动启动的.

我知道我可以使用wget或curl模拟手动包,但我想知道这是否是生产网站使用的最佳实践.

cron zope plone pack zodb

17
推荐指数
3
解决办法
2765
查看次数

何时在ZODB中提交数据

我试图通过以下代码生成数据:

for Gnodes in G.nodes()       # Gnodes iterates over 10000 values 
    Gvalue = someoperation(Gnodes)
    for Hnodes in H.nodes()   # Hnodes iterates over 10000 values 
        Hvalue =someoperation(Hnodes)
        score = SomeOperation on (Gvalue,Hvalue)
        dic_score.setdefault(Gnodes,[]).append([Hnodes, score, -1 ])
Run Code Online (Sandbox Code Playgroud)

由于字典很大(10000个键X 10000个列表,每个包含3个元素),因此很难将其保存在内存中.我正在寻找一个解决方案,它存储密钥:值(以列表的形式)对生成后立即.这里建议,以特定格式(Python)编写和阅读字典,以将ZODB与Btree结合使用.

如果这太天真,请耐心等待,我的问题是,何时应该调用transaction.commit()提交数据?如果我在内部循环结束时调用它,则生成的文件非常大(不确定原因).这是一个片段:

storage = FileStorage('Data.fs')
db = DB(store)
connection = db.open()
root = connection.root()
btree_container = IOBTree
root[0] = btree_container 
for nodes in G.nodes()
    btree_container[nodes] = PersistentList () ## I was loosing data prior to doing this 

for Gnodes in …
Run Code Online (Sandbox Code Playgroud)

python zodb

10
推荐指数
1
解决办法
2421
查看次数

备份ZODB blob的正确方法是什么?

我使用plone.app.blob将大型ZODB对象存储在blobstorage目录中.这减少了Data.fs上的大小压力,但我无法找到有关备份此数据的任何建议.

我已经通过将网络备份工具指向repozo备份目录来备份Data.fs.我应该简单地将该工具指向blobstorage目录来备份我的blob吗?

如果正在重新打包数据库或在复制过程中添加和删除blob,该怎么办?blobstorage目录中是否有必须按特定顺序复制的文件?

python zope plone zodb blobstorage

7
推荐指数
2
解决办法
2463
查看次数

从Django眼中了解Zope内部

我是zope的新手,之前我在Django工作了大约2.5年.因此,当我第一次跳入Zope(第2版)时(仅因为我的新公司7年来一直使用它),我遇到了这些问题.请帮助我理解它们.

  1. zodb的"真正"目的是什么?我知道它做了什么,但告诉我zodb做的​​一件好事和像Django(没有zodb)这样的框架未命中.

    更新:根据答案,Zodb取代了对ORM的需求.您可以直接将对象存储在db(zodb本身)中.

  2. 据说,zope的杀手功能之一是TTW(通过网络或使用ZMI开发)的理念.但我(和任何开发人员)更喜欢基于文件系统的开发(使用Version控件,使用Eclipse,使用Zope之外的任何喜欢的工具).那TTW实际上在哪里使用?

  3. 这是一个很大的问题.与Python/Django继承相比,Zope的Acquistion获得了什么"EXTRA Stuff".

  4. 来自Django的Zope真的是一个很好的举动吗?

  5. 任何网站如djangosnippets.org for Zope(v2)?

python django zope zodb acquisition

7
推荐指数
4
解决办法
2871
查看次数

包装后是否有必要保留data.fs.old?

我的data.fs是500 MB,所以我打包然后备份它,导致100 MB.

我的主机帐户只有500 MB,所以我想知道删除data.fs.old(500 MB)是否安全?

zope plone zodb

7
推荐指数
2
解决办法
1348
查看次数

如何摆脱ZEO工作者的ConflictError?

看着我的ZEO工作人员,我会看到很多:

2013-10-18T11:59:54 INFO ZPublisher.Conflict ConflictError at
/VirtualHostBase/http/www.domain.com:80/Plone/VirtualHostRoot/:
database conflict error (oid 0x533cd5, class
persistent.mapping.PersistentMapping) (78 conflicts (0 unresolved)
since startup at Mon Oct 14 04:09:45 2013)
Run Code Online (Sandbox Code Playgroud)

因为他们被记录,INFO我认为这根本不是有害的吗?

而且我想如果发生冲突是因为ZODB上的写入太多了?

zope plone zodb

7
推荐指数
2
解决办法
383
查看次数

pickle/zodb:如何处理带有类定义的移动.py文件?

我正在使用ZODB它,据我所知,它pickle用于存储类实例.我正在做一些重构,我想将models.py文件拆分成几个文件.但是,如果我这样做,我认为pickle将无法找到类定义,因此将无法加载我已存储在数据库中的对象.处理这个问题的最佳方法是什么?

python refactoring pickle zodb

6
推荐指数
1
解决办法
503
查看次数

Pyramid + transactionmanager:rm.abort()TPC正在进步中

我正在使用pyramid_tm和pyramid_mailer运行金字塔.我正在通过Sentry日志记录服务捕获以下回溯:

Stacktrace (most recent call last):

  File "transaction/_transaction.py", line 374, in _callAfterCommitHooks
    rm.abort(self)
  File "/srv/pyramid/trees/venv/lib/python3.4/site-packages/repoze/sendmail/delivery.py", line 119, in abort
    raise ValueError("TPC in progress")
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,回溯并不包含太多信息,我不确定这与哪些相关以及正在进行的TPC意味着什么.我认为这在某种程度上与提交挂钩之后的事务相关,发送电子邮件,我想在提交钩子到位之后很少有事务状态在某种程度上是意外的.

  • 这是什么意思?

  • 为什么回溯不会透露更多信息?它是在一个单独的线程中运行的吗?

python zodb pyramid

6
推荐指数
0
解决办法
143
查看次数

将my.packages重命名为my.package

my.packages是src目录中的自定义archetypes包.Plone实例中的数千个项目都添加了其类型.我想将包重命名为my.package.通过简单的卸载my.packages和安装my.package,我找到的http://本地主机:8080/mysite的/ MyFolder中/我的项目展示<persistent broken my.packages.content.mytype.MyType instance '\x00\x00\x00\x00\x00Un^'>.我应该做迁移吗?或者有一种简单的方法可以解决这个问题吗?

plone zodb

5
推荐指数
1
解决办法
273
查看次数

标签 统计

zodb ×10

python ×6

plone ×5

zope ×5

acquisition ×1

blobstorage ×1

cron ×1

django ×1

pack ×1

pickle ×1

pyramid ×1

refactoring ×1