2014-05-16 16 views
2

我想創建數據庫並在其中插入值。我正在使用postgres數據庫。我沒有看到任何錯誤,當我做以下爲什麼在python控制檯的SQLAlchemy base.metadata.create_all(引擎)不顯示錶?

>>> from sqlalchemy import create_engine 
>>> engine = create_engine('postgresql://postgres:[email protected]:5432/mydatabase') 
>>> from sqlalchemy.ext.declarative import declarative_base 
>>> Base = declarative_base() 
>>> from sqlalchemy import Column, Integer, String 
>>> class User(Base): 
...  __tablename__ = 'users' 
...  id = Column(Integer, primary_key=True) 
...  fullname = Column(String) 
...  password = Column(String) 
...  
...  def __repr__(self): 
...    return "<User(name='%s', fullname='%s', password='%s')>" % (self.name, self.fullname, self.password) 


>>> User.__table__ 

給我

Table('users', MetaData(bind=None), Column('id', Integer(), table=<users>, primary_key=True, nullable=False), Column('fullname', String(), table=<users>), Column('password', String(), table=<users>), schema=None) 

但是當我運行

>>> Base.metadata.create_all(engine) 

什麼也不顯示, 在文獻中,考慮到表其屬性顯示爲 但是在運行Base.metadata.create_all(引擎)後沒有看到任何東西

有些機構能否提出一些解決方案?

+0

你是什麼意思「什麼都沒有出現」? postgres數據庫中沒有創建表?那個電話之後你期望看到什麼? – davidism

+0

一些這樣的事 'PRAGMA table_info( 「用戶」) () CREATE TABLE用戶( ID INTEGER NOT NULL, 名VARCHAR, 全名VARCHAR, 密碼VARCHAR, PRIMARY KEY(ID) ) () COMMIT' 如何查看錶是否已創建?這是我第一次接觸sqlalchemy –

回答

4

如果你想看到的SQLAlchemy正在發送的命令,要在發動機轉echo上:

engine = create_engine('postgresql://...', echo=True) 

當然,你總是可以只查看數據庫之後與psql或其他工具。

相關問題