你是对的,这只适用于我使用的postgresql数据库。
但是我深入研究了你提供的帖子Random ids in sqlalchemy (pylons),它确实在sqlite中起作用,只是不要按照zzzeek的回答操作,
转而采用Tom Willis的解决方案,只需考虑一些事情,我完全遵循了这个代码,但做了一些改变:
逐行:
#I delete follow line:
from sqlalchemy.databases.mysql import MSBinary
因为在SQLAlchemy 0.6中,它是dialects.sqllite,但我没有使用它,我使用的是:
from sqlalchemy.types import Binary
只需更改UUID类中的以下行:
class UUID(types.TypeDecorator):
impl = Binary
...
...
id_column_name = "id"
def id_column():
import uuid
return Column(id_column_name,UUID(),primary_key=True,default=uuid.uuid4)
app_uuid = Column(u'app_uuid', UUID(), primary_key=True)
And that works for me, good luck!
previous answer
user = Table(
'User',
meta.metadata,
Column('ID', UUID(as_uuid=True), primary_key=True),
Column('Name', String(250), nullable=False, unique=True)
)
class Person(Base): __tablename__ = "person" id = Column(UUID(), primary_key=True) firstname = Column(Unicode(30)) lastname = Column(Unicode(50))
- Erik Oosterwaal