PostgreSQL 8.0.1 Documentation | ||||
---|---|---|---|---|
Prev | Fast Backward | Appendix E. Release Notes | Fast Forward | Next |
E.54. Release 1.01
Release date: 1996-02-23
E.54.1. Migration from version 1.0 to version 1.01
The following notes are for the benefit of users who want to migrate databases from Postgres95 1.0 to Postgres95 1.01.
If you are starting afresh with Postgres95 1.01 and do not need to migrate old databases, you do not need to read any further.
In order to Postgres95 version 1.01 with databases created with Postgres95 version 1.0, the following steps are required:
Set the definition of NAMEDATALEN in src/Makefile.global to 16 and OIDNAMELEN to 20.
Decide whether you want to use Host based authentication.
If you do, you must create a file name pg_hba in your top-level data directory (typically the value of your $PGDATA). src/libpq/pg_hba shows an example syntax.
If you do not want host-based authentication, you can comment out the line
HBA = 1 in src/Makefile.global
Note that host-based authentication is turned on by default, and if you do not take steps A or B above, the out-of-the-box 1.01 will not allow you to connect to 1.0 databases.
Compile and install 1.01, but DO NOT do the initdb step.
Before doing anything else, terminate your 1.0 postmaster, and backup your existing $PGDATA directory.
Set your PGDATA environment variable to your 1.0 databases, but set up path up so that 1.01 binaries are being used.
Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1
Start up a new 1.01 postmaster
Add the new built-in functions and operators of 1.01 to 1.0 databases. This is done by running the new 1.01 server against your own 1.0 database and applying the queries attached and saving in the file 1.0_to_1.01.sql. This can be done easily through psql. If your 1.0 database is name testdb:
% psql testdb -f 1.0_to_1.01.sql and then execute the following commands (cut and paste from here):
-- add builtin functions that are new to 1.01create function int4eqoid (int4, oid) returns bool as 'foo'language 'internal';create function oideqint4 (oid, int4) returns bool as 'foo'language 'internal';create function char2icregexeq (char2, text) returns bool as 'foo'language 'internal';create function char2icregexne (char2, text) returns bool as 'foo'language 'internal';create function char4icregexeq (char4, text) returns bool as 'foo'language 'internal';create function char4icregexne (char4, text) returns bool as 'foo'language 'internal';create function char8icregexeq (char8, text) returns bool as 'foo'language 'internal';create function char8icregexne (char8, text) returns bool as 'foo'language 'internal';create function char16icregexeq (char16, text) returns bool as 'foo'language 'internal';create function char16icregexne (char16, text) returns bool as 'foo'language 'internal';create function texticregexeq (text, text) returns bool as 'foo'language 'internal';create function texticregexne (text, text) returns bool as 'foo'language 'internal';-- add builtin functions that are new to 1.01create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);