diff --git a/geopandas/io/sql.py b/geopandas/io/sql.py index 978207e..0cf67ca 100644 --- a/geopandas/io/sql.py +++ b/geopandas/io/sql.py @@ -30,7 +30,7 @@ def read_postgis(sql, con, geom_col='geom', crs=None, index_col=None, index_col, coerce_float, params """ - df = read_sql(sql, con.engine, index_col=index_col, coerce_float=coerce_float, + df = read_sql(sql, con, index_col=index_col, coerce_float=coerce_float, params=params) if geom_col not in df: raise ValueError("Query missing geometry column '{}'".format( diff --git a/tests/util.py b/tests/util.py index b987a9a..1118953 100644 --- a/tests/util.py +++ b/tests/util.py @@ -1,7 +1,6 @@ import io import os.path from six.moves.urllib.request import urlopen -from sqlalchemy import create_engine from geopandas import GeoDataFrame, GeoSeries @@ -49,11 +48,8 @@ def validate_boro_df(test, df): def connect(dbname): - driver = 'psycopg2' try: - conn_str = 'postgresql+{driver}://localhost/{dbname}' - engine = create_engine(conn_str.format(driver=driver, dbname=dbname)) - con = engine.connect() + con = psycopg2.connect(dbname=dbname) except (NameError, OperationalError): return None @@ -78,7 +74,8 @@ def create_db(df): return False try: - con.execute("DROP TABLE IF EXISTS nybb;") + cursor = con.cursor() + cursor.execute("DROP TABLE IF EXISTS nybb;") sql = """CREATE TABLE nybb ( geom geometry, @@ -87,18 +84,20 @@ def create_db(df): shape_leng float, shape_area float );""" - con.execute(sql) + cursor.execute(sql) for i, row in df.iterrows(): sql = """INSERT INTO nybb VALUES ( ST_GeometryFromText(%s), %s, %s, %s, %s );""" - con.execute(sql, (row['geometry'].wkt, + cursor.execute(sql, (row['geometry'].wkt, row['BoroCode'], row['BoroName'], row['Shape_Leng'], row['Shape_Area'])) finally: + cursor.close() + con.commit() con.close() return True