Setup DB restore 💿
- Make an empty directory
sqlfiles
insidedata
folder which is in the repository root. - Place the database dump files
now_test.sql
,now_log_test.sql
andnow_view.sql
inside it. - Notice, that the container will have to be able to read these files and execute
data/restore_and_create_user.sql
, so you may have to adjust the necessary rights depending on your operating system.
See database docs for how this works.
Init the project 🚀
Requirements: npm and some modern installation of Docker engine with Docker compose.
npm run setup
in project root to install all node modules, generate prisma-client and create all required config files (doesn't overwrite previous ones!).- If you wish to use the staging database, you need to copy the dump files into
data/sqlfiles/
directory. See example of how anonymized test data is intest_data/sqlfiles/
npm run dev
to run with the staging database ornpm run start:anon
to run with the anonymized small test-db included in the repository.- Check if it worked: The docker logs should have a line saying database connection works. Open
localhost:5173
in browser to check if frontend works and shows data.
Errors while setting up
Before any other debugging steps:
- Make sure main branch is up to date
- Make sure again, you didn't actually check did you...
- Re-setup your environment with
npm run setup
- Remove existing containers and volumes
npm run <environment>:down
- Force rebuild it with
-- --build
flag:npm run <environment> -- --build
- If problems persist, scream for help and hope someone hears you
- Continue with other debugging steps
- Repeat
Database
If the database fails to start with an error message Cannot open directory /docker-entrypoint-initdb.d/. Permission denied
, the problem is most likely permissions. dev
uses data
directory and anon
+ test
uses test_data
.
Both directories and the files inside need the permissions read
and execute
. In Linux/GNU this can be achieved by running chmod 755 DIRECTORY -R
where DIRECTORY is the wanted directory, test_data
or data
.
(NOTE: This gives write
for all files and directories for current user. You can disable this by changing the first number to match the other two numbers.)
Backend or frontend
-
Cannot find module /usr/src/app/backend/src/index.ts
- Permission error with
backend/src
- Fixed by running
find backend/src -type d -exec chmod 755 {} \; && find backend/src -type f -exec chmod 644 {} \;
(on Linux). - The command gives permissions
read
andexecute
for directories andread
for files insidebackend/src
. - NOTE: This gives
write
for all files and directories for current user. You can disable this by changing the first number to match the others.
- Permission error with
-
Cannot find module ../../../frontend/src/shared/types
- Permission error with
frontend/src
- Fixed by running
find frontend/src -type d -exec chmod 755 {} \; && find frontend/src -type f -exec chmod 644 {} \;
(on Linux). - The command gives permissions
read
andexecute
for directories andread
for files insidefrontend/src
. - NOTE: This gives
write
for all files and directories for current user. You can disable this by changing the first number to match the others.
- Permission error with