<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="299113" data-post-id="299113">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="roryfahy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/roryfahy/120/27553_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  roryfahy
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey <a class="mention" href="/u/kenny-evitt" rel="nofollow">@kenny-evitt</a> would you by any chance have an example script you could share of how to go about this?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="299113" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/create-a-database-seed-for-pr-preview-environments/49696/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-299113" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="299113"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="299251" data-post-id="299251">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kenny-evitt" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kenny-evitt
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I can’t share the examples as-is but I can share examples that I think convey the gist.</p>
<p>I have a Mix alias in <code>mix.exs</code> like this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">  defp aliases do

      ...

      "ecto.setup": [
        ...
        "run priv/repo/seeds.exs"
      ],

      ...
</code></pre>
<p>You could also run the seeds script by itself:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">$ mix run priv/repo/seeds.exs
</code></pre>
<p>My <code>priv/repo/seeds.exs</code> file looks like:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">Code.eval_file("priv/repo/seed/something.exs")

Code.eval_file("priv/repo/seed/something-else.exs")

...
</code></pre>
<p>But it’s totally reasonable to just start with everything in one file.</p>
<p><code>priv/repo/seed/something.exs</code> would look like:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">something_1 =
  %MyApp.Something{
    name: "Blah blah blah",
    ...
  }
  |&gt; Repo.insert!()

...
</code></pre>
<p>Note that you can access your app’s code, so you can, e.g. call ‘regular’ functions in your app’s modules or its dependencies or extract code or data into new modules:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">password = RepoSeedsInfo.password()

user_1_email = RepoSeedsInfo.user_1_email()

something_1 =
  MyApp.User.changeset(
    %MyApp.User{},
    %{
      email:    user_1_email,
      password: password
    }
  )
  |&gt; Repo.insert!()
</code></pre>
<p>My main use case is for populating <code>:dev</code> and <code>:test</code> DBs but you could split up or organize your code to handle whatever else you want.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="299251" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/create-a-database-seed-for-pr-preview-environments/49696/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-299251" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="299251"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="299261" data-post-id="299261">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="roryfahy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/roryfahy/120/27553_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  roryfahy
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you <a class="mention" href="/u/kenny-evitt" rel="nofollow">@kenny-evitt</a>. How do you handle wanting to generate a lot of <code>Something</code>? or do you not often find yourself needing larger samples to operate on?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="299261" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/create-a-database-seed-for-pr-preview-environments/49696/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-299261" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="299261"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="299298" data-post-id="299298">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kenny-evitt" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kenny-evitt
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You’re welcome!</p>
<p>Pragmatically, I’ve mostly been slowly accumulating seed data for specific purposes, so I’ve mostly been adding small ‘bespoke’ samples.</p>
<p>Generating larger samples is, in general, arbitrarily hard (or can be), e.g. ‘mimicking production’.</p>
<p>But again, in practice, it’s been easy enough to write a function like <code>MyApp.Test.AThing.random_thing/x</code> if you do need lots of seed items. I’ve found lots of shared uses between code like that that’s useful for tests and generating seed data. This has mostly been helpful for, e.g. testing UI lists or bounds/filters of complex DB queries, and not (much at all) for ‘simulating production’.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="299298" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/create-a-database-seed-for-pr-preview-environments/49696/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-299298" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="299298"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>