mirror of
https://github.com/umami-software/umami.git
synced 2026-02-20 12:35:38 +01:00
added seeder script
This commit is contained in:
parent
b006747a45
commit
baf8e2ac81
3 changed files with 56 additions and 2 deletions
|
|
@ -14,7 +14,7 @@
|
||||||
"build": "npm-run-all check-env build-db check-db build-tracker build-geo build-app",
|
"build": "npm-run-all check-env build-db check-db build-tracker build-geo build-app",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"build-docker": "npm-run-all build-db build-tracker build-geo build-app",
|
"build-docker": "npm-run-all build-db build-tracker build-geo build-app",
|
||||||
"start-docker": "npm-run-all check-db update-tracker start-server",
|
"start-docker": "npm-run-all check-db update-tracker seed start-server",
|
||||||
"start-env": "node scripts/start-env.js",
|
"start-env": "node scripts/start-env.js",
|
||||||
"start-server": "node server.js",
|
"start-server": "node server.js",
|
||||||
"build-app": "next build",
|
"build-app": "next build",
|
||||||
|
|
@ -45,7 +45,8 @@
|
||||||
"postbuild": "node scripts/postbuild.js",
|
"postbuild": "node scripts/postbuild.js",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"cypress-open": "cypress open cypress run",
|
"cypress-open": "cypress open cypress run",
|
||||||
"cypress-run": "cypress run cypress run"
|
"cypress-run": "cypress run cypress run",
|
||||||
|
"seed": "node scripts/seed.js"
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
"**/*.{js,jsx,ts,tsx}": [
|
"**/*.{js,jsx,ts,tsx}": [
|
||||||
|
|
|
||||||
21
scripts/seed.js
Normal file
21
scripts/seed.js
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* eslint-disable no-console */
|
||||||
|
require('dotenv').config();
|
||||||
|
const { client: prismaClient } = require('@umami/prisma-client');
|
||||||
|
|
||||||
|
const { seedAdminUser } = require('./seeds/admin-user');
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
// seed admin user
|
||||||
|
await seedAdminUser();
|
||||||
|
|
||||||
|
console.log('Seeding complete.');
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
.catch(e => {
|
||||||
|
console.error(e);
|
||||||
|
process.exit(1);
|
||||||
|
})
|
||||||
|
.finally(async () => {
|
||||||
|
await prismaClient.$disconnect();
|
||||||
|
});
|
||||||
32
scripts/seeds/admin-user.js
Normal file
32
scripts/seeds/admin-user.js
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
const { hashPassword } = require('next-basics');
|
||||||
|
|
||||||
|
/* eslint-disable no-console */
|
||||||
|
const { client: prismaClient } = require('@umami/prisma-client');
|
||||||
|
|
||||||
|
async function seedAdminUser() {
|
||||||
|
const adminUserId = process.env.ADMIN_USER_ID;
|
||||||
|
const adminUsername = process.env.ADMIN_USERNAME;
|
||||||
|
const adminPassword = process.env.ADMIN_PASSWORD;
|
||||||
|
|
||||||
|
if (!adminUserId || !adminUsername || !adminPassword) {
|
||||||
|
console.error('Admin credentials are not set.');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
await prismaClient.user.upsert({
|
||||||
|
where: { username: adminUsername },
|
||||||
|
update: {},
|
||||||
|
create: {
|
||||||
|
id: adminUserId,
|
||||||
|
username: adminUsername,
|
||||||
|
password: hashPassword(adminPassword),
|
||||||
|
role: 'admin',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('Admin user seeded successfully.');
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
seedAdminUser,
|
||||||
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue