diff --git a/backend/README.md b/backend/README.md index 58276126..ee2e97f1 100644 --- a/backend/README.md +++ b/backend/README.md @@ -54,48 +54,9 @@ docker exec -t utopia-map-database-1 pg_dumpall -c -U directus > dump.sql Assuming you run docker-compose with the default postgress credentials and have the dump in cwd as ./dump.sql, execute: -Find current schema name: +Drop database: ``` -echo "SELECT CURRENT_SCHEMA, CURRENT_SCHEMA();" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus" -``` -> current_schema | current_schema -> ----------------+---------------- -> public | public -> (1 row) - -Drop schemata (loses all data): -``` -echo "DROP SCHEMA public CASCADE;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus" - -echo "DROP SCHEMA tiger CASCADE;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus" - -echo "DROP SCHEMA tiger_data CASCADE;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus" - -echo "DROP SCHEMA topology CASCADE;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus" -``` -> drop cascades to table ... -> ... -> DROP SCHEMA - -Create the public schema again: -``` -echo "CREATE SCHEMA public;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus" -``` - -Verify schemata: -``` -echo "select schema_name from information_schema.schemata;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus" -``` - -Verify database is empty: -``` -echo "\dt" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus directus" -``` -> Did not find any relations. - -Create admin role & grant it: -``` -echo "CREATE ROLE admin;" | docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql --username directus directus" +docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql -v ON_ERROR_STOP=1 --username directus directus" < ./backend/scripts/drop-database.sql ``` Apply dump: diff --git a/backend/scripts/drop-database.sql b/backend/scripts/drop-database.sql new file mode 100644 index 00000000..d6837492 --- /dev/null +++ b/backend/scripts/drop-database.sql @@ -0,0 +1,8 @@ +-- CAUTION: THIS SCRIPT DROPS ALL DATA IN YOUR DATABASE! +DROP SCHEMA public CASCADE; +DROP SCHEMA tiger CASCADE; +DROP SCHEMA tiger_data CASCADE; +DROP SCHEMA topology CASCADE; + +CREATE SCHEMA public; +CREATE ROLE admin; \ No newline at end of file diff --git a/backend/scripts/update-user-passwords.sql b/backend/scripts/update-user-passwords.sql new file mode 100644 index 00000000..079726b9 --- /dev/null +++ b/backend/scripts/update-user-passwords.sql @@ -0,0 +1,3 @@ +-- Selects passwords and emails and creates a script to update user passwords in a database. +-- This is used to port users between instances as directus cannot import user passwords +SELECT CONCAT('UPDATE public.directus_users SET password=''', password, ''' WHERE email=''', email, ''';') FROM public.directus_users; \ No newline at end of file