Я продолжаю получать это предупреждение, и независимо от того, что, кажется, не может избавиться от него (кроме того, что я его исключаю):
C:\...\site-packages\sqlalchemy\sql\elements.py:4390: SAWarning:
Textual column expression 'column_name' should be explicitly declared
with text('column_name'), or use column('column_name') for more
specificity
if guess_is_literal else "column"
Я строю список объектов Column () (имя столбца + данныеТип) в одном контексте метаданных, а затем в другом контексте метаданных создать таблицу, используя этот список.Хотя это работает, оно дает это предупреждение.Я пытался:
- сохранить его как "заключенное в кавычки"
- приведение столбца к "ColumnClause", используя column ()
- приведение столбца кTextClause, используя text ()
- приведение столбца к строке, используя str ()
Независимо от того, что я все еще получаю предупреждение.
Вот несколько фрагментов кода Python:
for col_name in self.cols_source:
print(meta.tables[self.table_name].c[col_name].name)
print(type(meta.tables[self.table_name].c[col_name].name)) #quotedname
print(type(column(meta.tables[self.table_name].c[col_name].name))) #ColumnClause
print(type(text(meta.tables[self.table_name].c[col_name].name))) #TextClause
print(type(str(meta.tables[self.table_name].c[col_name].name))) #Str
#source_query_cols.append( Column( name=meta.tables[self.table_name].c[col_name].name, type_=meta.tables[self.table_name].c[col_name].type ))
#source_query_cols.append( Column( name=column(meta.tables[self.table_name].c[col_name].name), type_=meta.tables[self.table_name].c[col_name].type ))
#source_query_cols.append( Column( name=text(meta.tables[self.table_name].c[col_name].name), type_=meta.tables[self.table_name].c[col_name].type ))
source_query_cols.append( Column( name=str(meta.tables[self.table_name].c[col_name].name), type_=meta.tables[self.table_name].c[col_name].type ))