Dynamic Data

πŸ§β€β™‚οΈ I've fixed things up a little bit and added some organization for us. Just so you know. I've also created a couple utility functions for creating users to make that data a tad bit more realistic and creating images that we've already got in our tests/fixtures/images directory.
Here's a quick example of how my img utility helps us create images:
await prisma.user.create({
	data: {
		// stuff here
		image: {
			create: {
				altText: `someone at the end of a cry session who's starting to feel a little better.`,
				file: {
					create: {
						contentType: 'image/png',
						blob: await fs.promises.readFile(
							'./tests/fixtures/images/notes/9.png',
						),
					},
				},
			},
			create: await img({
				altText: `someone at the end of a cry session who's starting to feel a little better.`,
				filepath: './tests/fixtures/images/notes/9.png',
			}),
		},
	},
})
Additionally, I've also pre-loaded all the images for you, so you can simplify it even further if you want:
await prisma.user.create({
	data: {
		// stuff here
		image: {
			create: await img({
				altText: `someone at the end of a cry session who's starting to feel a little better.`,
				filepath: './tests/fixtures/images/notes/9.png',
			}),
		}
		image: { create: noteImages[9] },
	},
})
I also moved things around a bit generally to be more organized and ready for your exercise. No need to thank me. I'm just doing my job. 😎 (πŸ¦‰ but you really should thank your co-workers because it's a nice thing to do).
πŸ‘¨β€πŸ’Ό Thanks Kellie! Utilities like this are pretty critical for generating data that's specific to our application. Alright, so we're going to need you to generate a lot more data. We'll have the emoji in there to help guide you through this a bit. As a reminder, here's one way you could do this:
const things = await Promise.all(
	Array.from({ length: numberOfThings }, async () => {
		// create your async thing...
	}),
)
And you can use Faker to create random numbers of things with:
const things = await Promise.all(
	Array.from({ length: faker.number.int({ min: 0, max: 5 }) }, async () => {
		// create your async thing...
	}),
)
It's very possible you will hate the level of expression nesting going on here. That is totally fine. If you'd rather go with a more imperative style of multiple statements and loops, that's totally fine. I personally prefer the nesting, but there's more than one way to do this.
SQLite doesn't support createMany, so that's why we have to do a single create call per record we want to insert. UPDATE: With Prisma 5.12.0, you can now use createMany with SQLite. πŸŽ‰
🐨 Once you're happy with your seed script, let's run it!
npx prisma db seed
🐨 And then open up the Prisma Studio to see your generated data:
npx prisma studio

Please set the playground first

Loading "Dynamic Data"
Loading "Dynamic Data"
Login to get access to the exclusive discord channel.
  • general
    Modals / Dialogs
    Lucas Wargha πŸš€ 🌌:
    It seems like modals and dialogs are becoming a hot topic on my team lately. I haven’t found a solid...
    1 Β· 2 days ago
  • general
    epic stack website initial load at home page is unstyled (sometimes)
    osmancakir πŸš€ 🌌:
    Sometimes (especially when it is loaded first time on a new browser etc.) I see this unstyled versio...
    • βœ…1
    10 Β· 3 months ago
  • general
    Welcome to EpicWeb.dev! Say Hello πŸ‘‹
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    This is the first post of many hopefully!
    • 18
    86 Β· 2 years ago
  • general
    Resource / Api endpoints on epic stack / RR7
    Lucas Wargha πŸš€ 🌌:
    Hi everyone! Quick question for those using the Epic Stack: How are you handling resource routes ...
    • βœ…1
    2 Β· 2 months ago
  • general
    Epic stack using tanstack form
    Lucas Wargha πŸš€ 🌌:
    https://github.com/epicweb-dev/epic-stack/compare/epicweb-dev:main...wargha:feature/tanstack-form-ex...
    • βœ…1
    3 Β· 2 months ago
  • general
    Init command outdated on the EpicWeb website
    Virgile πŸ† 🌌:
    Hi everyone. I've initialized a new epic-stack project yesterday. Following instructions from http...
    • βœ…1
    3 Β· 2 months ago
  • general
    Mark as complete, resets the first time you click it.
    Daniel V.C πŸš€ 🌌:
    Not sure if anyone else has had this issue, as i've not seen anyone else talk about it, but I find ...
    • βœ…1
    8 Β· 3 months ago
  • πŸ’Ύdata
    general
    πŸ“forms
    πŸ”­foundations
    double underscore?
    trendaaang 🌌:
    What with the `__note-editor.tsx`? I don't see that in the Remix docs and I don't remember Kent talk...
    • βœ…1
    2 Β· a year ago
  • general
    Keeping Epic Stack Projects Free on Fly – Any Tips?
    Lucas Wargha πŸš€ 🌌:
    I’ve been experimenting with the Epic Stack and deploying some dummy projects on Fly. I noticed that...
    • βœ…1
    0 Β· 3 months ago
  • πŸ’Ύdata
    general
    πŸ“forms
    πŸ”­foundations
    Creating Notes
    Scott 🌌 πŸ†:
    Does anybody know in what workshop we create notes? I would like to see the routing structure. So fa...
    • βœ…1
    2 Β· 5 months ago
  • πŸ’Ύdata
    Prisma extension not showing my db
    oaguinaga 🌌 πŸš€:
    I noticed that in the data modeling module, Kent can visualize Prisma tables directly inside the edi...
    • βœ…1
    2 Β· 5 months ago
  • πŸ”­foundations
    πŸ’Ύdata
    general
    πŸ“forms
    πŸ”auth
    Thank you for the inspiration
    Binalfew πŸš€ 🌌:
    <@105755735731781632> I wanted to thank you for the incredible knowledge I gained from your Epic Web...
    • ❀️1
    1 Β· 5 months ago
  • πŸ’Ύdata
    How often do you need to run a migration?
    Scott 🌌 πŸ†:
    I just finished the Data Migrations workshop (I come from a No-SQL background). Let's say I add a n...
    • βœ…1
    1 Β· 7 months ago
  • general
    npm install everytime I setup a new playground
    Duki 🌌:
    Is it normal that I have to run `npm install` in my playground directory, everytime I setup the play...
    • βœ…1
    2 Β· 8 months ago
  • πŸ’Ύdata
    Code snippets in workshop app
    remich 🌌:
    What is used to include the code snippets in the workshop app? I'd like to have syntax-highlighted P...
    • βœ…1
    1 Β· 9 months ago
  • πŸ’Ύdata
    a very large insert
    osmancakir πŸš€ 🌌:
    hi all, I need to perform seeding to my deployment. I followed the steps in the database documentati...
    • βœ…1
    2 Β· a year ago
  • πŸ’Ύdata
    πŸ“forms
    πŸ”­foundations
    Reviewing foundations, Mutations, Actions
    silvanet πŸš€ 🌌:
    Forgive me for this. I went over the file size limit. I don't want to sign up for being able to exce...
    • βœ…1
    2 Β· a year ago
  • general
    Migration to Vite: Server-only module referenced by client
    Fabian 🌌:
    Hi, I'm working on migrating to Vite following the remix docs (https://remix.run/docs/en/main/guides...
    • βœ…1
    1 Β· 10 months ago
  • πŸ’Ύdata
    Undesired behaviors while running the data-modeling workshop
    juliano.brasil 🌌:
    After pulling the latest updates I started experiencing 2 undesired behaviors while running the wor...
    • βœ…1
    2 Β· a year ago
  • πŸ’Ύdata
    πŸ“forms
    Getting a TS error that is not present in the course files
    OtterlyPunk:
    So I'm working in parallel and I'm feeling the problem is I'm using a new version of something in my...
    • βœ…2
    12 Β· a year ago
  • general
    Remix Vite Plugin
    Binalfew πŸš€ 🌌:
    <@105755735731781632> Now that remix officially supports vite (though not stable) what does it mean...
    • βœ…1
    3 Β· 2 years ago
  • πŸ’Ύdata
    Prisma Typed SQL
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    Hey <@&1123674184959148043> friends, check out the new Typed SQL feature in Prisma! I've added an ex...
    • 2
    • 2
    0 Β· 10 months ago
  • general
    πŸ”­foundations
    Solutions video on localhost:5639 ?
    quang πŸš€ 🌌:
    Hi, so I'm having a hard time navigating (hopefully will be better with time) The nav on epicweb.de...
    • βœ…1
    9 Β· 2 years ago
  • πŸ’Ύdata
    Multi-Column Index - How does it eliminate the B-tree?
    Darren πŸš€ 🌌:
    So I just finished the Query Optimization - 02 Multi-Column Index lesson and was confused by the fol...
    • βœ…1
    2 Β· a year ago
  • general
    Epicshop is now social and mobile friendly!
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    I'm excited to announce that now the Epic Web workshops are mobile friendly! https://foundations.ep...
    • πŸŽ‰2
    0 Β· a year ago
  • πŸ’Ύdata
    πŸ“forms
    πŸ”­foundations
    How can I do this?
    silvanet πŸš€ 🌌:
    Viewing the Intro (from the Workshop) for Mutations, the course has an embedded video where Kent exp...
    • βœ…1
    3 Β· a year ago