使用 sqlalchemy 连接到本地 postgresql

Posted

技术标签:

【中文标题】使用 sqlalchemy 连接到本地 postgresql【英文标题】:Connecting to locally postgresql using sqlalchemy 【发布时间】:2013-07-23 19:33:25 【问题描述】:

这里绝对是初学者。我在使用 postgres.app 和 sqlalchmey 连接到在 macosx 机器上本地运行的 postgresql 数据库时遇到问题:

导入 psycopg2 导入 sqlalchemy

engine = sqlalchemy.create_engine('postgresql://localhost/practice.db') engine.connect()

返回: OperationalError: (OperationalError) FATAL: 数据库“practice.db”不存在 无 无

谢谢, 埃文

【问题讨论】:

【参考方案1】:

您必须先创建该数据库,然后才能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'

【讨论】:

以上是关于使用 sqlalchemy 连接到本地 postgresql的主要内容,如果未能解决你的问题,请参考以下文章

使用 Flask-SQLAlchemy 连接到 MSSQL 数据库

如何使用 Windows 身份验证通过 sqlalchemy 连接到 SQL Server?

使用 sqlalchemy 连接到 mssql 数据库时遇到问题

使用 SQLAlchemy 连接到 Oracle 数据库

使用 SQLAlchemy 连接到 Amazon Aurora

使用 sqlalchemy 和 pyodbc 连接到 SQL Server 2012