-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GNIP 75 - Enable spatial data store for Django DB #6079
Comments
@t-book If approved, please add this to the wiki. Cheers |
@mtnorthcott done, -> under discussion: https://github.com/GeoNode/geonode/wiki/GeoNode-Improvement-Proposals |
@mtnorthcott Thanks a lot for this PR which will definitely improve our codebase. Where I am unsure is the issue with SQLite which will stop working as from then we rely on PostGIS, right? In other words, paver setup which is very nice, for quick testing and development, will diverge in functionality from a setup using PostGIS. In case you or others do not have a better solution, I could live with it in case we're returning a meaningful error message plus having a bold red warning in docs. |
SQLite should continue to work through Spatialite, though @mtnorthcott has run into the issue described on his PR. It works for me, though my machine has a newer libspatialite 5.0.0 installed. If it really comes down to a version incompatibility between Shapely and Spatialite (as this ticket suggests - shapely/shapely#904) we may have to include a warning in the documentation? |
my +1 |
+1 |
1 similar comment
+1 |
+1 |
+0 as I cannot figure out all the possible implications right now. Maybe there aren't :) |
With Francesos answer I would say this PR can be seen as accepted as the majority of PSC members voted +1 |
The GNIP, the points of the proposal should be met first. |
I would like to see all the PRs related to all the points of the GNIP before start merging, that what I'm saying. Aka, documentation, travis updates and updates to installations methods (this last point probably easier, except that needs testing, because almost all already use postgresql). Moreover, paver commands using sqlite will be dropped as far as I understood. So I'd expect some checks on the DB added to pavements script too. |
I now have working installations of GeoNode using paver commands and docker-compose which utilise Spatialite and PostGIS databases, respectively. Although it is possible to run a Postgres server locally and enable PostGIS when using a local paver installation, it is easier to maintain SQLite support for this method. It's works as-is with the workaround suggested in shapely/shapely#904 (included in my PR). However, I can document how to use PostGIS locally, despite not being the default, if necessary. Lastly, the Selenium tests are currently causing my PR to fail in Travis CI. I believe this could be caused by their dependence on the Any ideas on the best course of action from here? I would be keen to hear the community's thoughts. |
Work on Travis CI is progressing. I have confirmed that the standard Selenium test passes with an updated Please see the description for an updated list of PRs pertaining to this GNIP (which I will continue to update) |
Most tests now pass under Travis CI. To get SPCGeoNode working, the @afabiani Would you be able to review my PR at some stage and let me know your thoughts? I will return on Wednesday next week so there's no rush. Cheers. |
@mtnorthcott sure, thanks for your effort. Will try to review it in these days. |
[Issue GeoNode/geonode#6079] Remove celerycam
Tests now passing under Travis. |
@mtnorthcott cool, good job! I guess the PR is stable now, I'm going to do final testing and help with the documentation. Then we can finally merge it. |
great work @mtnorthcott. This is an important step for GeoNode, it will open up new capabilities also for any new REST API which could require spatial filtering / search of data, preview of data locations, etc. |
well done @mtnorthcott thanks a lot! :)) |
Appreciate the feedback! It's certainly exciting that we're getting close :) I realise I made an error and put a duplicate link in my PR list. I have amended this and have also added an initial documentation proposal. Feel free to critique. |
I guess we are very close, I just need to test it with all the current GeoNode installation ways. I'll put a list here below and I'll check the successful ones while testing:
|
[Issue GeoNode/geonode#6079] Use PostGIS for Django DB
[Issue GeoNode/geonode#6079] Reference spatial data stores for Django database
…r Django database"
Revert "[Issue GeoNode/geonode#6079] Reference spatial data stores for Django database"
…tores for Django database""
What is the status for this GNIP? |
Good question - I was under the impression that the remaining issues on #6064 had been fixed and everything was ready to go. @mtnorthcott will rebase the PR this week and check if everything works. It'd be good to get a second opinion too once that's done. |
I have now rebased #6064 and locally verified that the Docker and paver installation methods work as expected and behave as they did before the rebase. I did encounter some errors in the Docker installation where some layers did not upload correctly. However, reverting to the current master branch yielded the same results. A summary of these issues are as follows:
From here, the GNIP is nearly complete. I'll be looking into fixing the CI build and then the PR will be ready for another review I expect. |
CI build has been fixed. The exercise involved upgrading the CI to bionic for the newer version of SQLite/Spatialite. The previously used backport ppa has since been discontinued. Using bionic also means an update to GDAL version 2.2.x, or 2.4.x with the official Ubuntu GIS ppa. This revealed an issue with renaming shapefile column names with windows-1258 encoding which I have detailed in #6394. I have implemented a workaround (also detailed in the issue) to restore old CI functionality for the test affected. That said, the PR is ready for another review @afabiani. The problems outlined in the last review are now be resolved and rebased on master. |
@mtnorthcott awesome! Thanks for your big effort. I'll try to review asap. Performing all the tests requires (both automatic and manual) requires a lot of time. |
@mtnorthcott @gannebamm @t-book @giohappy @geotob @francbartoli PR merged, it is working nicely on master. Still to backport on 3.x (aka 3.1) after more extensive tests. We still need to check again the documentation and merge it. Other than this, we will need to advertise people on the new model change. Especially, updating the existing layers will need to run "updatelayers" management command in order to fix the bounding boxes. P.S.: thanks @mtnorthcott for the hard work. Sorry this taken so long. |
Thanks @afabiani for the time on reviewing this 👍 We'll make a ticket internally to check & update documentation and include a visible breaking change notification about having to run |
Ok, I think this will be in 3.2 than, which is perfectly fine. What do you guys think @afabiani @t-book @giohappy @francbartoli ? |
The current geonode-project docker composition fails with:
I already tried to rebuilt the docker-postgis container but it is still not working. |
Thanks for the feedback and for reviewing @afabiani @gannebamm I have taken a look at the geonode-project repo but could get to the stage of performing migrations due to the servers being down at the time. Regardless, when scoping the GNIP, the geonode-project repo was not considered and does not have a 3.x version release. For the time being, I will leave this up to the community to investigate but would be happy to help if needed. |
…tores for Django database"" (#49)
Doc merged here |
@gannebamm you should use |
GNIP 75 - Enable spatial data store for Django DB
Overview
This GNIP proposes the transition to spatial data stores such as PostGIS and Spatialite in place of the existing Django database. This will enable more streamlined and easier implementation of features involving geospatial queries such as 'search by extent'. The implication of this transition is the migration of existing data sets. The implementation requires adjustments to all installation sources and fixes to the Travis CI and paver test suites.
Proposed By
@mtnorthcott
@geotob
Assigned to Release
This proposal is for GeoNode 3.x
State
Existing work
This GNIP started as a fix for the 'search by extent' feature, proposed in #6064 which serves as a basis. In this state, the feature works with the Docker, paver and SPCGeoNode installation methods. The focus is now on getting Travis CI tests to pass, documenting and advertising all changes thoroughly.
Pull Requests:
Motivation
Originally, an issue (#4346) was raised over the 'search by extent' feature not working properly. The issue was mitigated in a commit, however, the end goal is to transition to spatial databases exclusively. Work towards this goal has begun in effort to enable full functionality to the 'search by extent' feature in #6064.
Proposal
Backwards Compatibility
@property
decorated access methodsFuture evolution
Feedback
Some initial thoughts have been discussed in the original issue (#4346) and the 'search by extent' pull request (#6064).
Voting
Project Steering Committee:
Links
6624790
The text was updated successfully, but these errors were encountered: