diff --git a/.gitignore b/.gitignore index e904773..0e566f1 100644 --- a/.gitignore +++ b/.gitignore @@ -47,4 +47,5 @@ src/assets/iconify-icons/generated-icons.css sendgrid.env # production -app-data/.seeded +/app-data/* +!/app-data/.gitkeep diff --git a/app-data/.gitkeep b/app-data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml index 00e9c93..1bf0081 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: - NODE_ENV=production depends_on: - postgres - command: sh -c "cd src && npx prisma migrate deploy && [ -f /app/data/.seeded ] || (npx prisma db seed && touch /app/data/.seeded) && cd .. && npm start" + command: sh -c "cd src && npx prisma migrate deploy && mkdir -p /app/data && [ -f /app/data/.seeded ] || (npx prisma db seed && touch /app/data/.seeded) && cd .. && npm start" networks: - app-network volumes: diff --git a/src/prisma/seed.ts b/src/prisma/seed.ts index 88ede67..c0e8a47 100644 --- a/src/prisma/seed.ts +++ b/src/prisma/seed.ts @@ -1,5 +1,5 @@ import { prisma } from './client' -import { initialiseUsersAndResponses } from './seeds/users' +import { initialiseAdmin, initialiseUsersAndResponses } from './seeds/users' async function initialiseQuestions() { const NMSK1 = await prisma.question.create({ @@ -315,6 +315,8 @@ async function main() { if (process.env.NODE_ENV === 'development') { await initialiseUsersAndResponses() + } else if (process.env.NODE_ENV === 'production') { + await initialiseAdmin() } } diff --git a/src/prisma/seeds/users.ts b/src/prisma/seeds/users.ts index a7235ae..e1fabca 100644 --- a/src/prisma/seeds/users.ts +++ b/src/prisma/seeds/users.ts @@ -137,6 +137,20 @@ async function generateMultipleResearcher(num_researcher = 2) { } } +export async function initialiseAdmin() { + const hashedPassword = await bcrypt.hash('1234567', 10) + + await prisma.user.create({ + data: { + email: 'admin1@mail.com', + hashedPassword: hashedPassword, + firstName: 'admin1', + lastName: 'admin1', + role: Role.ADMIN + } + }) +} + export async function initialiseUsersAndResponses() { const hashedPassword = await bcrypt.hash('1234567', 10)