标签: python-elixir

在SQLAlchemy/Elixir中选择不同的列值

在我使用SQLAlchemy和Elixir编写的一个小脚本中,我需要获取特定列的所有不同值.在普通的SQL中,它只是一个简单的问题

SELECT DISTINCT `column` FROM `table`;
Run Code Online (Sandbox Code Playgroud)

我知道我可以"手动"运行该查询,但如果可以,我宁愿坚持使用SQLAlchemy声明性语法(和/或Elixir).我确信它一定是可能的,我甚至在SQLAlchemy文档中看到过这种类似的暗示,但我一直在寻找这些文档几个小时(以及Elixir的文档),我就是不能似乎真的弄清楚它将如何完成.那我错过了什么?

python sql sqlalchemy python-elixir

44
推荐指数
4
解决办法
6万
查看次数

从sqlalchemy转储csv

出于某种原因,我想以csv文件的形式从数据库(sqlite3)转储表.我正在使用带有elixir的python脚本(基于sqlalchemy)来修改数据库.我想知道是否有任何方法可以将我使用的表转储到csv.

我见过sqlalchemy 序列化器,但它似乎不是我想要的.我做错了吗?我应该在关闭sqlalchemy会话后调用sqlite3 python模块转储到文件吗?或者我应该使用自制的东西?

python csv sqlalchemy python-elixir

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

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

我创建了一个python应用程序,它使用elixir/sqlalchemy来存储数据.软件的第二个版本要求更新在先前版本中创建的任何文件,以便添加/删除表和列.

我的问题是:我怎样才能做到这一点?我知道sqlalchemy-migrate,但我必须说我发现它令人困惑.它没有提到现有数据会发生什么.此外,sqlite 减少了ALTER TABLE支持,因此如果我尝试删除列,将会迁移什么?有没有其他方法可以使用迁移?

python database sqlalchemy sqlalchemy-migrate python-elixir

11
推荐指数
2
解决办法
4429
查看次数

我应该使用SQLObject,SQLAlchemy还是SQLAlchemy + Elixir?

我已经使用SQLObject很长一段时间了,但是注意到SQLAlchemy在过去几年中变得更受欢迎:http://www.google.com/trends? q = sqlobject,+ sqlalchemy

是否有令人信服的理由切换到SQLAlchemy?它的性能相对于SQLObject如何?它的可用性?使用Elixir会增加性能开销是多少?

我的需求是基本的,简单的CRUD.没有异国情调.

我已经看到了这个相关的问题,但它是在1年多前被问过并没有太多回应.

python sqlalchemy sqlobject python-elixir

11
推荐指数
1
解决办法
2888
查看次数

无法初始化Elixir

我是从Elixir和SQL Alchemy开始的.我已经创建了一个连接Mysql数据库的python文件但是只要我用python执行,我就会得到错误:

root@raspberrypi:/Python/mainFlask/yonkiPOPS# python yonki.py
Traceback (most recent call last):
  File "yonki.py", line 1, in <module>
    from elixir import metadata, Entity, Field
  File "/usr/local/lib/python2.7/dist-packages/Elixir-0.7.1-py2.7.egg/elixir/__init__.py", line 29, in <module>
    from elixir.entity import Entity, EntityBase, EntityMeta, EntityDescriptor, \
  File "/usr/local/lib/python2.7/dist-packages/Elixir-0.7.1-py2.7.egg/elixir/entity.py", line 17, in <module>
    from sqlalchemy.orm import MapperExtension, mapper, object_session, \
ImportError: cannot import name ScopedSession
Run Code Online (Sandbox Code Playgroud)

我一直在寻找它,但我找不到原因.这是yonki.py文件:

                                                                                                                                                                                                                                                                            from elixir import metadata, Entity, Field
from elixir import Unicode, UnicodeText   
from elixir import *
class User(Entity): 
        username = Field(String(64))

metadata.bind = 'mysql://root:nomasandroid42@localhost/yonkiPOPS'
session.bind.echo = …
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy python-elixir

10
推荐指数
2
解决办法
3323
查看次数

MySQL服务器已经消失 - 通过checkout事件处理程序断开连接处理不起作用

更新3/4:

我做了一些测试并证明使用checkout事件处理程序检查断开连接是否与Elixir一起使用.开始认为我的问题与session.commit()从子进程调用有关?更新:我只是通过调用session.commit()下面的子进程,更新示例来反驳自己.我正在使用多处理模块来创建子流程.

这是代码,显示它应该如何工作(甚至没有使用pool_recycle!):

from sqlalchemy import exc
from sqlalchemy import event
from sqlalchemy.pool import Pool
from elixir import *
import multiprocessing as mp

class SubProcess(mp.Process):
    def run(self):
        a3 = TestModel(name="monkey")
        session.commit()

class TestModel(Entity):
    name = Field(String(255))

@event.listens_for(Pool, "checkout")
def ping_connection(dbapi_connection, connection_record, connection_proxy):
    cursor = dbapi_connection.cursor()
    try:
        cursor.execute("SELECT 1")
    except:
        # optional - dispose the whole pool
        # instead of invalidating one at a time
        # connection_proxy._pool.dispose()

        # raise DisconnectionError - pool will …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy multiprocessing mysql-python python-elixir

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

带有Elixir的铁塔

我想将Pylons与Elixir一起使用,但是,我不确定这样做的最佳方法是什么.有几个博客文章(cleverdevil,beachcoder,adam hoscilo),甚至还有一个关于如何做到这一点的全新框架 ; 但是,我不确定它们之间的区别.哪一个最好用?我是否会遇到使用其中一个的问题?

我宁愿不要直接使用SQLAlchemy,因为它的冗长和重复性.

python pylons sqlalchemy python-elixir

7
推荐指数
1
解决办法
976
查看次数

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

sqlalchemy中scoped_session的问题 - 它是如何工作的?

我不确定scoped_session是如何工作的,除了它似乎是一个隐藏几个真实会话的包装器,使它们分开以满足不同的请求.它是否与线程本地人一起使用?

无论如何麻烦如下:

S = elixir.session # = scoped_session(...)
f = Foo(bar=1)
S.add(f) # ERROR, f is already attached to session (different session)
Run Code Online (Sandbox Code Playgroud)

不确定f在不同的会话中是如何结束的,我之前没有遇到任何问题.在其他地方,我的代码看起来就像那样,但实际上是有效的.你可以想象我发现这很令人困惑.

我在这里什么都不知道,f似乎神奇地添加到构造函数中的一个会话中,但我似乎没有对它使用的会话有任何引用.为什么它会在不同的会话中结束?我怎样才能让它在正确的会话中结束?这个scoped_session的东西怎么样?它有时似乎有效,有时则不然.

我当然很困惑.

python sqlalchemy python-elixir

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

SQLAlchemy声明扩展与elixir

我打算在我的一个项目中使用SQLAlchemy,我对表的声明性语法非常感兴趣.

有人告诉我使用Elixir声明层,同时SQLAlchemy有内置的声明性扩展.

Elixir和声明性扩展之间目前的差异是什么?优点缺点?

python sqlalchemy python-elixir

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