Betrachten Sie diese einfache Tabellendefinition (mit SQLAlchemy-0.5.6)Wie sqlalchemy Länge einer String-Spalte
from sqlalchemy import *
db = create_engine('sqlite:///tutorial.db')
db.echo = False # Try changing this to True and see what happens
metadata = MetaData(db)
user = Table('user', metadata,
Column('user_id', Integer, primary_key=True),
Column('name', String(40)),
Column('age', Integer),
Column('password', String),
)
from sqlalchemy.ext.declarative import declarative_base
class User(declarative_base()):
__tablename__ = 'user'
user_id = Column('user_id', Integer, primary_key=True)
name = Column('name', String(40))
Ich möchte wissen, bekommen, was die maximale Länge der Spaltenname ist z.B. von Benutzertabelle und von Benutzern (deklarative Klasse)
print user.name.length
print User.name.length
Ich habe versucht (User.name.type.length) aber wirft es Ausnahme
Traceback (most recent call last):
File "del.py", line 25, in <module>
print User.name.type.length
File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/orm/attributes.py", line 135, in __getattr__
key)
AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object has an attribute 'type'
Ich mag würde mehr darüber lesen, aber nicht Bezug auf die 'property' finden überall Attribut in den offiziellen Dokumenten. Würde jemand so nett sein, einen Link zu posten? – KomodoDave
Hier ist der Typ, den es zurückgibt: http://sqlalchemy.readthedocs.org/en/latest/orm/internals.html?highlight=strategisedproperty#sqlalchemy.orm.properties.ColumnProperty aber ich möchte @KomodoDave und zweitens @ frage mich, wo die Dokumentation für die Eigenschaft und die Spaltenattribute ist. Meine Mitarbeiter und ich haben Vorbehalte gegenüber der Verwendung undokumentierter Funktionalität. –