3

I just enabled my PostgreSQL/PostGIS database with ArcSDE. Since I did this, when I copy and paste a dataset into my database via ArcCatalog, the dataset is not visible in QGIS.

This is because there is no geometry according to QGIS. I want to use ArcSDE database with all its benefits in ArcMap, but still be able to add this dataset in QGIS via a PostGIS connection.

How do I make sure that ArcGIS uploads the table with PostGIS geometry?

I almost have a solution by changing the ArcSDE table sde_dbtune to contain Default Geometry_Storage of PG_GEOMETRY, but if I upload a new dataset via ArcCatalog, the table is still not visible in QGIS.

It does work if I change the config.keyword to PG_GEOMETRY in Catalog (see image), but shouldnt it have to work on DEFAULTS too since I changed the settings?

enter image description here

I use PostgreSQL version 9.4, PostGIS 2.1.8 and ArcGIS 10.2.

8
  • Make the default DBTUNE geometry storage keyword "PG_GEOMETRY".
    – Vince
    Commented Dec 29, 2016 at 12:32
  • I changed the sde table sde_dbtune the Default Geometry_storage to PG_GEOMETRY, but I still cannot see a dataset in QGIS. Was this what you meant?
    – user30058
    Commented Dec 29, 2016 at 12:56
  • Sort of. The change only affects tables created after the change is made. Did you create any new tables?
    – Vince
    Commented Dec 29, 2016 at 13:14
  • Yes, I did. I just saw that I can change the config. keyword to PG_GEOMETRY if I do a data transfer in ArcCatalog and then it works, but if I leave this at default, I have the same problem. Also in Postgres I see that the shape column is still st_geometry for some reason. I reset the database in postgres and in catalog but without result
    – user30058
    Commented Dec 29, 2016 at 13:24
  • Which keyword did you change? Which keyword do you use? Please edit the question with details (including the PG and PostGIS versions, and the version of Desktop). Your "leave this as default" comment is unclear.
    – Vince
    Commented Dec 29, 2016 at 13:31

1 Answer 1

4

The default geometry creation type for ArcGIS in PostgreSQL databases depends on the version of software and how it's installed.

On Amazon RDS instances, where it's not possible to add the sde.st_geometry type, the geodatabase enablement code is able to detect RDS is in use, and the default DBTUNE entry is automatically altered to:

       keyword: "DEFAULTS"
parameter_name: "GEOMETRY_STORAGE"
 config_string: "PG_GEOMETRY"

On other PostgreSQL enterprise geodatabase-enabled databases, the default on initial install is:

       keyword: "DEFAULTS"
parameter_name: "GEOMETRY_STORAGE"
 config_string: "ST_GEOMETRY"

ArcGIS 10.4 and higher can write to PostgreSQL 9.3 and higher without enabling an enterprise geodatabase, and therefore use PostGIS geometry as a default.

The sdedbtune command-line utility was used to edit DBTUNE keywords at ArcGIS 10.2 and earlier, but that tool was deprecated, and a pair of ArcPy toolbox tools were added at 10.3:

I've generally just used SQL to make a simple change to one keyword parameter (but you need to make sure the transaction has committed before you try using it).

Note that the environment you have listed -- ArcGIS 10.2.x with PG 9.4.x and PostGIS 2.1.x -- is not a supported configuration. PostgreSQL 9.4 support was added at ArcGIS 10.4 (though it would probably work at ArcGIS 10.3.x). Always search on "system requirements" from desktop.arcgis.com to research RDBMS compatibility before enabling a geodatabase.

8
  • Thanks for your thorough answer. I know about the configuration, my company will update to 10.4 in January, but we wanted to prepare the database already
    – user30058
    Commented Dec 30, 2016 at 9:04
  • arcpy import gets parameters named "input_databse" and "in_file". But file conents are not defiled enywhere. How can I find file contents?
    – barteloma
    Commented Dec 5, 2017 at 11:27
  • @barteloma Please ask new questions in a new Question.
    – Vince
    Commented Dec 5, 2017 at 13:25
  • can add give an SQL example of changing a single keyword? Commented Sep 11, 2018 at 22:17
  • Can you please clarify how to do this? "ArcGIS 10.4 and higher can write to PostgreSQL 9.3 and higher without enabling an enterprise geodatabase, and therefore use PostGIS geometry as a default." I'm using ArcGIS Desktop 10.6.1 with PostGRES 10.3/Post GIS 2.4. I need to be able to edit polygon features regardless of client (QGIS/ArcGIS desktop). If I create a POSTGIS database and tables in pgAdmin 4, I would like to be able to add and edit that data with either client. Commented Sep 26, 2018 at 15:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.