wiki:UsersWikiWinUpgrade

Version 20 (modified by robe, 12 years ago) ( diff )

CLEAN HARD UPGRADE ON WINDOWS

General Hard upgrade instructions are documented in PostGIS Hard Upgrade

You need to do a hard upgrade if you are using a pre-alpha release of a major release such as the case with PostGIS 2.0 or you are upgrading from one major version to another e.g 0.*, 1.* —> 2.*

  1. Create a backup of your postgis database as usual. You can do this with pg_dump as the instructions describe or PgAdmin III by right-clicking on the database → Backup. Make sure to use "Custom" backup for format if you are using PgAdmin III.
  1. Create a new postgis database installed with the postgis version you want to upgrade to. Note if you are using PostgreSQL 9.1 and PostGIS 2.0 — you can use the new EXTENSION SQL commands in psql or pgAdmin III sql window after you have created a new database

to spatially enable a database.

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

You may also want to install legacy.sql if you have functions that use deprecated PostGIS functions.

  1. If you don't have perl on your windows box, download ActivePerl and install. You can use the 64-bit or 32-bit version even if you are using 32-bit PostgreSQL. http://www.activestate.com/activeperl/downloads.

When prompted to do so, choose to add Perl to your environment path and map perl to .pl scripts.

Note that ActivePerl also has packages for MacOS, Linux, but is generally not necessary for those platforms since they come prepackaged with perl.

  1. Create an upgrade.bat file with contents something like this and save in same folder as your database backup:
    set PGPORT=5432
    set PGHOST=localhost
    set PGUSER=postgres
    set PGPASSWORD=yourpasswordhere
    set THEDB=mydb
    set PGINSTALL=C:\Program Files (x86)\PostgreSQL\9.1
    REM note the below example is if you are on 32-bit windows choose which install path makes most sense
    REM set PGINSTALL=C:\Program Files\PostgreSQL\9.1\
    set PATH=%PATH%;"%PGINSTALL%\bin\"
    perl utils/postgis_restore.pl "mydb.backup" | psql %THEDB% 2> errors.txt
    pause
    
  1. Edit the script accordingly to your path settings. Note that utils folder is packaged with the PostGIS tar balls

if not present in your PostGIS install. Download the tar ball for the PostGIS you want to upgrade too and copy the utils folder to the same folder as your backup. http://www.postgis.org/download/

  1. Right mouse click on the .bat file (you may have to choose — Run as Administrator)
  1. If all is working — you should see a screen something like:
ALTER TABLE
ALTER TABLE
SET
  1. When all is done, check the errors.txt file to see if there are any serious errors. Serious errors are tables that did not come back, or some of your own functions that did not come back, your specialty contraints and indexes. PostGIS function failures should not show, but if they do, you can ignore them.
Note: See TracWiki for help on using the wiki.