From 8ae4ec52a37d18e6b1db76f73f92628afdd947a7 Mon Sep 17 00:00:00 2001 From: Simon L Date: Thu, 29 Dec 2022 00:29:53 +0100 Subject: [PATCH] migration - add some documentation on limits regarding the database owner name Signed-off-by: Simon L --- Containers/postgresql/start.sh | 8 ++++---- migration.md | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Containers/postgresql/start.sh b/Containers/postgresql/start.sh index 971bb6cc..924c6748 100644 --- a/Containers/postgresql/start.sh +++ b/Containers/postgresql/start.sh @@ -91,10 +91,10 @@ if ( [ -f "$DATADIR/PG_VERSION" ] && [ "$PG_MAJOR" != "$(cat "$DATADIR/PG_VERSIO # Get the Owner DB_OWNER="$(grep "$GREP_STRING" "$DUMP_FILE" | grep -oP 'Owner:.*$' | sed 's|Owner:||;s| ||g')" if [ "$DB_OWNER" = "$POSTGRES_USER" ]; then - DIFFERENT_DB_OWNER=1 - psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL - ALTER DATABASE "$POSTGRES_DB" OWNER TO "$POSTGRES_USER"; -EOSQL + echo "Unfortunately was the found database owner of the dump file the same as the POSTGRES_USER $POSTGRES_USER" + echo "It is not possible to import a database dump from this database owner." + echo "However you might rename the owner in the dumpfile to something else." + exit 1 elif [ "$DB_OWNER" != "oc_$POSTGRES_USER" ]; then DIFFERENT_DB_OWNER=1 psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL diff --git a/migration.md b/migration.md index e777cce9..6a159727 100644 --- a/migration.md +++ b/migration.md @@ -64,7 +64,8 @@ The procedure for migrating the files and the database works like this: 1. Type in `local::/your/old/datadir/` which should bring up the exact line where you need to modify the path to use the one used in Nextcloud AIO, instead. 1. Change it to look like this: `local::/mnt/ncdata/`. 1. Now save the file by pressing `[CTRL] + [o]` then `[ENTER]` and close nano by pressing `[CTRL] + [x]` - 1. In order to make sure that everything is good, you can now run `grep "/your/old/datadir" database-dump.sql` which should not bring up further results. + 1. In order to make sure that everything is good, you can now run `grep "/your/old/datadir" database-dump.sql` which should not bring up further results.
+ 1. **Please note:** Unfortunately it is not possible to import a database dump from a former database owner with the name `nextcloud`. You can check if that is the case with this command: `grep "Name: oc_appconfig; Type: TABLE; Schema: public; Owner:" database-dump.sql | grep -oP 'Owner:.*$' | sed 's|Owner:||;s| ||g'`. If it returns `nextcloud`, you need to rename the owner in the dump file manually. A command like the following should work, however please note that it is possible that it will overwrite wrong lines. You can thus first check which lines it will change with `grep "Owner: nextcloud$" database-dump.sql`. If only correct looking lines get returned, feel free to change them with `sed -i 's|Owner: nextcloud$|Owner: ncadmin|'`. 1. Next, copy the database dump into the correct place and prepare the database container which will import from the database dump automatically the next container start: ``` sudo rm /var/lib/docker/volumes/nextcloud_aio_database_dump/_data/database-dump.sql