From eb0f231a80ac8927df02d7db055c8bc9654e901a Mon Sep 17 00:00:00 2001 From: Mikhail5555 Date: Mon, 11 Jul 2022 23:09:41 +0200 Subject: [PATCH] Create migration_sqlite-postgres.md --- docs/system/migration_sqlite-postgres.md | 44 ++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 docs/system/migration_sqlite-postgres.md diff --git a/docs/system/migration_sqlite-postgres.md b/docs/system/migration_sqlite-postgres.md new file mode 100644 index 00000000..9f9f87fe --- /dev/null +++ b/docs/system/migration_sqlite-postgres.md @@ -0,0 +1,44 @@ +# How to migrate from sqlite3 database to postgresql +This migration was written while using the unraid template (docker) for TandoorRecipes, version 1.3.0. +While some commands are unraid specific, it should in general work for any setup. + +1. Make a backup of your `/mnt/user/appdata/recipes` dir. + +2. Without changing any settings, get a shell into the docker through the WEB-UI or by running `docker exec -it TandoorRecipes /bin/sh` +```cmd +cd /opt/recipes +./venv/bin/python manage.py export -a > /data/dump.json +``` + +3. Create a Postgresql database (With a new user & database for recipes) + +I used the `postgresql14` template. + +```cmd +psql -U postgres +postgres=# create database tandoor; +postgres=# create user tandoor with encrypted password 'yoursupersecretpassworddontusethisone'; +postgres=# grant all privileges on database tandoor to tandoor; +``` + +4. Now its time to change some enviourment variables in TandoorRecipes template: +```env +DB_ENGINE=django.db.backends.postgresql // Database Engine, previous value: `django.db.backends.sqlite3` +POSTGRES_HOST= // PostgreSQL Host +POSTGRES_PORT=5432 // PostgreSQL Host +POSTGRES_USER=tandoor //PostgreSQL User +POSTGRES_PASSWORD=yoursupersecretpassworddyoudidntcopy // PostgreSQL Password +POSTGRES_DB=tandoor // Database, previous value: `/data/recipes.db` +``` + +5. Save it, and start the container once. + +It will perform all database migrations once for the postgresql database. + +6. Get a shell into the docker through the WEB-UI or by running `docker exec -it TandoorRecipes /bin/sh` +```cmd +cd /opt/recipes +./venv/bin/python manage.py import /data/dump.json +``` + +7. Enjoy your new fuzzy search options and SLIGHTLY performance increase!