Compare commits

..

2 Commits

Author SHA1 Message Date
Chris Jean-Marie 6bdf37e91a Cleanup database migration script 2025-04-10 14:36:32 +00:00
Chris Jean-Marie 6552b1248f Add postgresql database instructions 2025-04-10 14:36:17 +00:00
2 changed files with 42 additions and 10 deletions

View File

@ -1,3 +1,38 @@
# Jean-Marie family website # Jean-Marie family website
The Jean-Marie family website is a place to share information about family activities The Jean-Marie family website is a place to share information about family activities
Postgresql server setup and configuration
- Create new debian container
- 2GB RAM
- 8G Storage
- link to ZFS storage pool
- Update packages
- apt update && apt upgrade -y && apt autoremove -y
- Install current postgresql source
- apt install -y postgresql-common
- /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
- apt install -y postgresql
- Move cluster to ZFS
- Stop postgresql
- systemctl stop postgresql
- Create new directory for cluster in ZFS
- from ZFS server create world writable directory
- Move current cluster to new location
- from ZFS server ensure ownership of all files in moved directory is postgres
- Point to new location
- nano /etc/postgresql/<version>/main/postgresql.conf
- data_directory = '<new location>'
- Restart postgresql
- systemctl start postgresql
- Allow external access
- Edit pg_hba.conf
- Change host all address to local network
- Edit postgresql.conf
- Change listen_adress to '*'
- Change password
- su postgres
- psql
- alter user postgres with password '<new password>';
- \q
- exit

View File

@ -5,23 +5,20 @@ create table if not exists people (
created_by uuid NOT NULL, created_by uuid NOT NULL,
updated_at timestamp without time zone NOT NULL DEFAULT now(), updated_at timestamp without time zone NOT NULL DEFAULT now(),
updated_by uuid NOT NULL, updated_by uuid NOT NULL,
email text NOT NULL, email text NOT NULL unique,
name text NOT NULL, name text NOT NULL,
family_name text NOT NULL, family_name text NOT NULL,
given_name text NOT NULL given_name text NOT NULL,
CONSTRAINT people_pkey PRIMARY KEY (id)
); );
ALTER TABLE
people
ADD
CONSTRAINT people_pkey PRIMARY KEY (id);
ALTER TABLE if exists users ALTER TABLE if exists users
ADD COLUMN person_id uuid REFERENCES people (id) ON DELETE SET NULL; ADD COLUMN IF NOT EXISTS person_id uuid REFERENCES people (id) ON DELETE SET NULL;
-- Copy accounts(users) to profiles(people) -- Copy accounts(users) to profiles(people)
insert into people (created_by, updated_by, email, name, family_name, given_name) insert into people (created_by, updated_by, email, name, family_name, given_name)
select created_by, updated_by, email, name, family_name, given_name from users; select created_by, updated_by, email, name, family_name, given_name from users
on conflict do nothing;
-- Link accounts to profiles -- Link accounts to profiles
update users u set person_id = p.id from people p where p.email = u.email; update users u set person_id = p.id from people p where p.email = u.email;