2013-07-23 2 views
1

확실히 초보자입니다.sqlalchemy를 사용하여 로컬에서 postgresql에 연결

수입 psycopg2 수입 SQLAlchemy의

엔진 = sqlalchemy.create_engine ('PostgreSQL을 : // localhost를/연습 I는 PostgreSQL 데이터베이스에 연결 문제가 postgres.app 및 sqlalchmey를 사용하여에서라도 컴퓨터에서 로컬로 실행에 봉착했습니다. 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'