SQLAlchemy-테이블 목록 가져 오기
설명서에서 이에 대한 정보를 찾을 수 없지만 SQLAlchemy에서 생성 된 테이블 목록을 어떻게 얻을 수 있습니까?
클래스 메서드를 사용하여 테이블을 만들었습니다.
모든 테이블은 tables
SQLAlchemy MetaData 개체 의 속성에 수집됩니다 . 해당 테이블의 이름 목록을 얻으려면 다음을 수행하십시오.
>>> metadata.tables.keys()
['posts', 'comments', 'users']
선언적 확장을 사용하는 경우 메타 데이터를 직접 관리하지 않을 수 있습니다. 다행히도 메타 데이터는 여전히 기본 클래스에 있습니다.
>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)
데이터베이스에 어떤 테이블이 있는지 파악하려는 경우 SQLAlchemy에 아직 말하지 않은 테이블 중에서도 테이블 리플렉션을 사용할 수 있습니다. 그런 다음 SQLAlchemy는 데이터베이스를 검사하고 누락 된 모든 테이블로 메타 데이터를 업데이트합니다.
>>> metadata.reflect(engine)
engine
객체에는 테이블 이름 목록을 가져 오는 방법이 있습니다 .engine.table_names()
from sqlalchemy import create_engine
engine = create_engine('postgresql://use:pass@localhost/DBname')
print (engine.table_names())
나는 다음과 같은 것을 찾고 있었다.
from sqlalchemy import create_engine
eng = create_engine('mysql+pymysql://root:password@localhost:3306', pool_recycle=3600)
q = eng.execute('SHOW TABLES')
available_tables = q.fetchall()
실행을 수행하고 모든 테이블을 반환합니다.
최신 정보:
Postgres :
eng = create_engine('postgresql+psycopg2://root:password@localhost/
q = eng.execute('SELECT * FROM pg_catalog.pg_tables')
테이블을 생성 한 메타 데이터 개체는 사전에 있습니다.
metadata.tables.keys()
파이썬 인터프리터 내에서 db.engine.table_names () 사용
$ python
>>> from myapp import db
>>> db.engine.table_names()
나는 같은 문제를 해결하고 있으며이 게시물을 찾았습니다. 몇 번 실행 한 후 아래에서 모든 테이블을 나열하는 것이 좋습니다. (zerocog에서 언급 함)
metadata = MetaData()
metadata.reflect(bind=engine)
for table in metadata.sorted_tables:
print(table)
이것은 직접 테이블 처리에 유용하고 추천합니다.
그리고 아래 코드를 사용하여 테이블 이름을 가져옵니다.
for table_name in engine.table_names():
print(table_name)
"metadata.tables"는 테이블 이름 및 테이블 개체에 대한 Dict를 제공합니다. 빠른 쿼리에도 유용합니다.
한 번에 모든 테이블을 반영하면 숨겨진 테이블 이름도 검색 할 수 있습니다. 나는 임시 테이블을 만들었고 그들은
meta = MetaData()
meta.reflect(bind=myengine)
for table in reversed(meta.sorted_tables):
print table
Reference http://docs.sqlalchemy.org/en/latest/core/reflection.html
참고URL : https://stackoverflow.com/questions/6473925/sqlalchemy-getting-a-list-of-tables
'program tip' 카테고리의 다른 글
배열의 ObjectId에 대한 $ lookup (0) | 2020.09.21 |
---|---|
Python에서 콘솔 출력 교체 (0) | 2020.09.21 |
Bootstrap을 사용하여 모바일에 테이블을 표시하는 방법은 무엇입니까? (0) | 2020.09.21 |
PostgreSQL은 "악센트를 구분하지 않는"데이터 정렬을 지원합니까? (0) | 2020.09.21 |
Apple (Inc.)에 대한 트윗과 사과 (과일)에 대한 트윗을 구분하는 모델을 구축하려면 어떻게해야합니까? (0) | 2020.09.21 |