2013-07-23 80 views
1

絕對是初學者。我在連接到PostgreSQL數據庫的問題用postgres.app和sqlalchmey一個MacOSX的機器上運行:使用sqlalchemy連接到本地postgresql

進口psycopg2 進口SQLAlchemy的

引擎= sqlalchemy.create_engine('PostgreSQL的://本地主機/做法。 DB「) engine.connect()

返回: OperationalError:(OperationalError)FATAL:數據庫 」practice.db「 不存在 無無

個謝謝, 埃文

回答

0

你必須創建一個數據庫,然後才能create_engine

from urlparse import urlparse, urlunparse 

def recreate_db(url): 
    parsed = urlparse(url) 
    #parse url so you know host 
    host_url = urlunparse((parsed.scheme, parsed.netloc, '/', '', '', '')) 

    #create_engine without database name 
    engine = create_engine(host_url, convert_unicode=True) 
    dbname = parsed.path.strip('/') 
    engine.execute('commit') 
    try: 
     #drop (and clean) database if it exists with raw query 
     engine.execute('drop database `%s`;'%dbname) 
     engine.execute('commit') 
    except OperationalError: 
     pass 

    #create database 
    engine.execute('create database `%s` default character set utf8 ;'%dbname) 
    engine.execute('commit') 
    print 'Done cleanup'