Mój silnik ma właściwość dMeta
, które zwracają meta silników, potem mam klasy z metody zwanej table
które w zasadzie robi to:sqlalchemy - AttributeError (key) brakuje klucza, gdy faktycznie jest w columnCollection
def table(meta):
return Table('table1',meta,autoload=True,schema=genShema())
Jestem automatycznego ładowania tabeli:
t = SomeClass.table(engine.dMeta)
sql = select([t.c.ID, t.c.OPIS, t.c.IDG,
func.left(t.c.ID,2).label("Ident"),
(func.left(t.c.ID,2).label('Ident2')+' '+t.c.OPIS).label("show_as")])\
.where(t.c.ATRIBUT=="VPFA")
SQLAlchemy daje mi błąd:
def __getattr__(self, key):
try:
return self._data[key]
except KeyError:
raise AttributeError(key)
Kluczem jest ID
, self._data contains
"ID" = {kolumna}, który jest table1.ID
i jeśli wstawię self._data[key]
otrzymam poprawną wartość, bez błędu, więc jaki jest problem?
Nawet po tym, jak ponownie uruchomić kod kilka razy, czasem pęka, czasami nie:/
Czy zmieniacie gdzieś stolik? Jak generujesz schemat? –
SomeClass.table (engine.dMeta) -> to wywołuje metodę tabeli dla tej klasy. Zwraca automatycznie ładowany stół. genShema() zwraca Brak, jeśli nie przekazano żadnego argumentu, w przeciwnym razie pusts ".dbo" na końcu, jeśli db to mssql – zPrima
Sprawdź wielkość liter nazwy kolumny w db –