dotnet / efcore

EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations.
https://docs.microsoft.com/ef/
MIT License
13.79k stars 3.19k forks source link

Upgrade to SpatiaLite 5 #22138

Open bricelam opened 4 years ago

bricelam commented 4 years ago

See the docs. It looks like there's a bit of chaos around PROJ.6 on Windows. We may also need to upgrade existing databases and start calling a new function to initialize the metadata tables. We can also take this time to move some of the SpatiaLite functionality out of the SQLite provider and into the NTS extension. We can also reconsider how we redistribute SpatiaLite on Windows.

bricelam commented 3 years ago

This is currently blocked (SpatiaLite is at version 5.0.1 at the time of writing).

In addition to PROJ 6 depending directly on SQLite, the KNN feature, and even parts of the base SpatiaLite code also depend directly on SQLite. This means that mod_spatialite is not a generic SQLite extension, but rather it must be compiled against the same SQLite library that it will eventually be loaded into. While this works just fine with the system version of SQLite, it falls down with SQLitePCLRaw's bring-your-own native library model.

bricelam commented 3 years ago

mod_spatialite has been updated, and they’ve asked for teams to verify that it can work now.

https://www.gaia-gis.it/fossil/libspatialite/wiki?name=June+2021+update&p

bricelam commented 3 years ago

Success! It looks like we're unblocked as soon as they release a new version. I've reported back on their mailing list.

ajcvickers commented 3 years ago

@bricelam Not doing for 6.0?

bricelam commented 3 years ago

Not planned. I don’t think they intend to release for a while. It also requires a bit of design on our side to ensure a smooth upgrade (e.g. with migrations) from v4. It was in the 6.0 milestone to ensure timely validation on our part.

ajcvickers commented 2 years ago

Note: see test issue in #27662. If we don't add support in 7.0, then consider adding a check and throwing a nice exception. Also consider adding a check in the tests to skip these tests if 5.0 is installed.

clahil-linum commented 1 year ago

Supporting the nativ GeoPackage format (like described here: https://www.geopackage.org/spec121/index.html#gpb_format) would be nice too. In theory one could use "SELECT AutoGPKGStart()" but in my experience working with the prefixed "vgpkg_*" tables is unrealiable. GeoPackage is avaiable nativ within Qgis.

For more information about the virtual vgpkg topic visit: https://www.gaia-gis.it/fossil/libspatialite/wiki?name=Virtual+Tables+(misc) (scroll down to VirtualGPKG)