1
0
Fork 0
mirror of synced 2024-09-17 09:49:11 +12:00
budibase/packages/server/scripts/load/create-many-relationships.js

67 lines
1.8 KiB
JavaScript
Raw Normal View History

2023-12-20 04:59:23 +13:00
#!/bin/node
const { createApp, getTable, createRow, createTable } = require("./utils")
2023-12-20 23:51:35 +13:00
const Chance = require("chance")
const generator = new Chance()
2023-12-21 00:30:35 +13:00
const STUDENT_COUNT = 100
2023-12-21 00:18:29 +13:00
const SUBJECT_COUNT = 10
2023-12-20 04:59:23 +13:00
if (!process.argv[2]) {
console.error("Please specify an API key as script argument.")
process.exit(-1)
}
2023-12-21 00:18:29 +13:00
async function sleep(ms) {
return new Promise(r => setTimeout(() => r(), ms))
}
2023-12-20 04:59:23 +13:00
async function run() {
const apiKey = process.argv[2]
const app = await createApp(apiKey)
2023-12-21 00:30:35 +13:00
console.log(`App created: http://localhost:10000/builder/app/${app._id}`)
2023-12-21 00:18:29 +13:00
const studentsTable = await getTable(apiKey, app._id)
if (studentsTable.name !== "Students") {
throw 'Fetched table should be "Students"'
}
console.log(`Table found: ${studentsTable.name}`)
2023-12-20 04:59:23 +13:00
const subjectTable = await createTable(apiKey, app._id, {
schema: {
2023-12-20 23:51:35 +13:00
Name: {
2023-12-20 04:59:23 +13:00
name: "Name",
type: "string",
},
},
name: "Subjects",
})
2023-12-20 23:51:35 +13:00
for (let i = 0; i < SUBJECT_COUNT; i++) {
await createRow(apiKey, app._id, subjectTable, {
Name: generator.profession(),
})
console.log(`Subject ${i + 1} of ${SUBJECT_COUNT} created`)
2023-12-21 00:18:29 +13:00
await sleep(50)
2023-12-20 04:59:23 +13:00
}
2023-12-21 00:30:35 +13:00
let studentNumber = studentsTable.schema["Auto ID"].lastID
2023-12-21 00:18:29 +13:00
for (let i = 0; i < STUDENT_COUNT; i++) {
2023-12-21 00:30:35 +13:00
await createRow(apiKey, app._id, studentsTable, {
"Student Number": (++studentNumber).toString(),
"First Name": generator.first(),
"Last Name": generator.last(),
Gender: generator.pickone(["M", "F"]),
Grade: generator.pickone(["8", "9", "10", "11"]),
"Tardiness (Days)": generator.integer({ min: 1, max: 100 }),
"Home Number": generator.phone(),
"Attendance_(%)": generator.integer({ min: 0, max: 100 }),
})
2023-12-21 00:18:29 +13:00
console.log(`Row ${i + 1} of ${STUDENT_COUNT} created`)
2023-12-20 04:59:23 +13:00
}
}
2023-12-21 00:30:35 +13:00
run().catch(err => {
console.error(err)
})