Setup DB restore 💿
- Make an empty directory
sqlfilesinsidedatafolder which is in the repository root. - Place the database dump files
now_test.sql,now_log_test.sqlandnow_view.sqlinside 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 setupin 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 devto run with the staging database ornpm run start:anonto 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:5173in 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
-- --buildflag: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
readandexecutefor directories andreadfor files insidebackend/src. - NOTE: This gives
writefor 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
readandexecutefor directories andreadfor files insidefrontend/src. - NOTE: This gives
writefor all files and directories for current user. You can disable this by changing the first number to match the others.
- Permission error with