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
Login to get access to the exclusive discord channel.
  • general
    Keeping Epic Stack Projects Free on Fly โ€“ Any Tips?
    wargha ๐Ÿš€ ๐ŸŒŒ:
    Iโ€™ve been experimenting with the Epic Stack and deploying some dummy projects on Fly. I noticed that...
    0 ยท 9 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...
    5 ยท 3 days 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 ยท 10 months ago
  • general
    Welcome to EpicWeb.dev! Say Hello ๐Ÿ‘‹
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    This is the first post of many hopefully!
    • 18
    81 ยท a year 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 ยท 2 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 ยท 3 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 ยท 3 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 ยท 5 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 ยท 5 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 ยท 6 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 ยท 10 months 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 ยท 10 months 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 ยท 7 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 ยท 9 months 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 ยท a year 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 ยท 7 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 ยท a year 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 ยท 9 months 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 ยท 9 months 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 ยท 10 months ago
  • ๐Ÿ’พdata
    Query optimization for queries generated by prisma
    Allan ๐ŸŒŒ:
    Hi everyone! I finished the data modeling workshop this week and was inspired to do some query optim...
    • โœ…1
    2 ยท 10 months ago
  • ๐Ÿ”auth
    ๐Ÿ’พdata
    08. ROLE-BASED ACCESS / 02. ROLES SEED - migration to local vs production
    Fabian ๐ŸŒŒ:
    So I'm in a bit over my head with this one, in particular with how migration works in a local env vs...
    • โœ…1
    1 ยท a year ago
  • ๐Ÿ’พdata
    data modeling 06/02 is missing part of the prompt
    Allan ๐ŸŒŒ:
    In Data Modeling 06/02 the files include `server/index.ts` but there are no guiding emojis, no promp...
    • โœ…1
    2 ยท a year ago
  • ๐Ÿ’พdata
    Why does TS not like Buffer being used when the return type of the blob appears to be Buffer?
    OtterlyPunk:
    I'm looking at the return types from Prisma and it appears that the `petImage.blob` is a `Buffer` ty...
    • โœ…2
    5 ยท a year ago
  • ๐Ÿ’พdata
    ๐Ÿ”auth
    Prisma batching in the Require Authorized (07/03/solution)
    ajara ๐ŸŒŒ ๐Ÿš€:
    When I did the `requireUser` function in `auth.server.ts` I thought about using `requireUserId` func...
    • โœ…1
    4 ยท a year ago