我是pgAdmin和GIS DB的新手。我想将CSV文件上传到pgAdmin v4.1,并且试图理解这样做的逻辑。我可以通过在所需数据库下创建一个新表,然后手动定义列(名称,类型等)来做到这一点,然后才可以使用GUI将CSV加载到pgAdmin中。导入CSV文件的方法似乎有点麻烦,因为假设我有一个200列的CSV文件,手动定义它们都是不现实的,而且必须有一种方法告诉pgAdmin:这是CSV文件,现在,您自己获取列并获取(或至少假设使用)列类型,并创建一个新表,这与pandas
在python中读取CSV的方式非常相似。由于我是这个主题的新手,请尽可能详细地阐述您的答案\评论。
答案 0 :(得分:1)
否:很遗憾,我们只能在创建表格后导入CSV。
是:没有GUI方法,但是:
有一个名为pgFutter的实用程序,它将完全满足您的要求。这是一个命令行实用程序。 Here are the binaries。
您可以编写一个执行该操作的函数。 Here is an example。
答案 1 :(得分:0)
我会考虑使用GDAL将CSV文件上传到Postgis中。 我最近用它来做类似的工作。
ogr2ogr -f "PostgreSQL" -lco GEOMETRY_NAME=geometry -lco FID=gid PG:"host=127.0.0.1 user=username dbname=dbname password=********" postgres.vrt -nln th_new_data_2019 -t_srs EPSG:27700
用于将csv上传到postgis并转换坐标系的代码。
-f =文件格式名称
输出文件格式名称,一些可能的值为: -f“ ESRI Shapefile” -f“老虎” -f“ MapInfo文件” -f“ GML” -f“ PostgreSQL
-lco = NAME = VALUE: 图层创建选项(特定于格式)
-nln名称: 为新图层分配一个备用名称
-t_srs srs_def: 目标空间参考集。可以传递的坐标系是OGRSpatialReference.SetFromUserInput()调用支持的任何内容,包括EPSG PCS和GCSes(即EPSG:4296),PROJ.4声明(如上)或包含以下内容的.prj文件的名称众所周知的文字。
我使用的最好和最简单的GDAL安装指南是: https://sandbox.idre.ucla.edu/sandbox/tutorials/installing-gdal-for-windows