2013-07-23 79 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'