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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just learned that PostgresSQL can auto-generate UUID primary key now. Does a UUID primary key serve any purpose other than avoiding conflict in case you scale to multiple databases?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263783" 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/getting-primary-key-as-null-after-creating-a-new-user/50766/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-263783" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263783"
                     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="263787" data-post-id="263787">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In purpose the ID is somewhere public it avoids that the sequence is predictable.<br>
If you want to hide how many are already existing.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263787" 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/getting-primary-key-as-null-after-creating-a-new-user/50766/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-263787" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263787"
                     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="263788" data-post-id="263788">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="webuhu" data-post="13" data-topic="50766" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/webuhu/48/11495_2.png" class="avatar"> webuhu:</div>
<blockquote>
<p>In purpose the ID is somewhere public it avoids that the sequence is predictable.<br>
If you want to hide how many are already existing.</p>
</blockquote>
</aside>
<p>I do this by using <a href="https://www.hex.pm/packages/hashids" rel="nofollow">hashids</a> on integer primary id. Cheaper to implement.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263788" 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/getting-primary-key-as-null-after-creating-a-new-user/50766/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-263788" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263788"
                     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="263791" data-post-id="263791">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yep, PostgreSQL can default a column value either using a literal value or using the output of any function that returns the correct type; of course in the case of a primary key or other unique column the return value of the function must be unique or you’ll get some flavor of unique  violation.  The commonly used, though now old fashioned, serial/bigserial column types are really pseudo-types/syntactical sugar for generating both the column type of <code>integer</code> or <code>bigint</code>, creating a sequence, and setting the default value to the return value of the <code>nextval(&lt;sequence regclass&gt;)</code> function call.</p>
<p>Assuming a surrogate key as primary key, I have a number of reasons for preferring UUIDs over incrementing integers.  One is the case you cite, but consider a case where you’re writing SQL by hand.  I can’t tell you how many bugs I’ve seen of the type:</p>
<pre data-code-wrap="sql"><code class="lang-sql">CREATE TABLE pohead 
    (pohead_id bigserial PRIMARY KEY &lt;columns&gt;);

CREATE TABLE podetail 
    (podetail_id bigserial PRIMARY KEY, 
     podetail_pohead_id bigint REFERENCES pohead (pohead_id),
     &lt;columns&gt;);

SELECT * 
FROM pohead JOIN podetail ON pohead_id  = podetail_id;
</code></pre>
<p>When using integers for primary key, the bug above may actually produce a result… not the right result, but a result.  When you do get a result from the bug above, it may be just close enough to the correct answer that you can go through quite a few operations disconnected in time making it all that much harder to track down the bug.  With UUIDs that class of bug becomes pretty obvious pretty early because the process where the bug sits simply won’t itself produce any result where a result is expected</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263791" 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/getting-primary-key-as-null-after-creating-a-new-user/50766/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-263791" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263791"
                     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 #14"></div>
  </section>
</div>
    <div class="postbit" id="263792" data-post-id="263792">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It is fair, however in practice:</p>
<ul>
<li>for commonly used joins, I just create a view ahead of time and use the view in my code</li>
<li>in the context of Elixir, Ecto can effectively prevent this kind of bug.</li>
</ul>
<p>I think UUID is an eye sore but it could be just me.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263792" 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/getting-primary-key-as-null-after-creating-a-new-user/50766/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-263792" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263792"
                     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 #15"></div>
  </section>
</div>
    <div class="postbit" id="263795" data-post-id="263795">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="derek-zhou" data-post="16" data-topic="50766">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/derek-zhou/48/19943_2.png" class="avatar"> derek-zhou:</div>
<blockquote>
<p>I think UUID is an eye sore but it could be just me.</p>
</blockquote>
</aside>
<p>FWIW I agree but f.ex. <a class="mention" href="/u/exadra37" rel="nofollow">@Exadra37</a> argued at length in favour of UUIDs, mostly citing enumeration attacks – like if the attacker knows you have <code>/profiles/1/edit</code> URLs, they will just make a script looping over all integers and attempt to find an authorization bug in your app that would allow them to edit an user profile.</p>
<p>And even if that fails every time for them they can DoS your app that way.</p>
<p>I’m semi-apathetic to the former problem and sympathetic to the latter. But I’d still put flood protection in front of my app and some ban rules.</p>
<p>50/50 though. I can clearly see the argument in favor of opaque and unpredictable IDs but I’m still skeptical how prevalent the prevented problem is in practice out there. Can’t hurt to protect yourself just in case, I suppose.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263795" 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/getting-primary-key-as-null-after-creating-a-new-user/50766/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-263795" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263795"
                     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 #16"></div>
  </section>
</div>
    <div class="postbit" id="263797" data-post-id="263797">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dimitarvp" data-post="17" data-topic="50766">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>enumeration attacks – like if the attacker knows you have <code>/profiles/1/edit</code></p>
</blockquote>
</aside>
<p>I’ve seen this in practice.  Our company was sourcing human resources management systems and one of the new/hot/disruptive/etc. SaaS companies was on the table.  We noticed URLs of exactly that sort and also noticed the IDs sequentially incrementing.  We trivially demonstrated that you get data you weren’t suppose to get just by manually manipulating the IDs in the URLs.  Luckily, human resources data isn’t so sensitive… we didn’t buy that system :-).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263797" 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/getting-primary-key-as-null-after-creating-a-new-user/50766/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-263797" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263797"
                     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 #17"></div>
  </section>
</div>
    <div class="postbit" id="263798" data-post-id="263798">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>hashids can make integer id opaque, but it is a very weak kind of encryption. A determined hacker with access to enough hashids can recover the salt in use and do the enumeration attack.</p>
<p>I agree with you that flood protection shall be the first line of defense. UUID key can prevent the enumeration but not the DDoS.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263798" 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/getting-primary-key-as-null-after-creating-a-new-user/50766/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-263798" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263798"
                     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 #18"></div>
  </section>
</div>
    <div class="postbit" id="263800" data-post-id="263800">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="derek-zhou" data-post="16" data-topic="50766">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/derek-zhou/48/19943_2.png" class="avatar"> derek-zhou:</div>
<blockquote>
<p>I think UUID is an eye sore but it could be just me.</p>
</blockquote>
</aside>
<p>It’s not just you.  They are an eyesore.  But it’s about trade-offs.</p>
<p>Strong/static typing can be a pain in the ass to work with compared to weak/dynamic typing.  Working with something like Rust’s borrow checking is more annoying than, say, working  in a more permissive environment such as C++ or C.</p>
<p>However certain classes of errors are largely eliminated by working in the more constraining environment, but at the cost of some ergonomic loss.  Sometimes those trade-offs are worth it: JavaScript, Python, PHP, … Elixir &amp; Erlang… etc. do have their place and time compared to less forgiving languages like Rust.</p>
<p>I find that UUIDs can strongly prevent certain classes of data management &amp; maintenance problems at the cost of being harder to deal with on an intuitive basis.  In applications with less demanding requirements of data persistence… sure, use the integer keys.  Some classes of applications aren’t as conducive to simpler remediations, like canned views, in enough cases to avoid the issues of integer based keys and the trade off swings to a UUID class of identifier.  I am usually working in environments where data retention is complex and the required certainty around data management is sufficiently justified to warrant the cost of UUIDs (or similar).</p>
<p>I’ll get off the soapbox here, we’ve derailed the conversation a bit, but I do think it’s useful to think about these things.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263800" data-batch-url="/posts/batch_likers">
                        2
                      </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/getting-primary-key-as-null-after-creating-a-new-user/50766/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-263800" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263800"
                     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 #19"></div>
  </section>
</div>
    <div class="postbit" id="263865" data-post-id="263865">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><em>(OFF-TOPIC, sorry)</em></p>
<aside class="quote no-group" data-username="sbuttgereit" data-post="20" data-topic="50766">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sbuttgereit/48/30162_2.png" class="avatar"> sbuttgereit:</div>
<blockquote>
<p>However certain classes of errors are largely eliminated by working in the more constraining environment, but at the cost of some ergonomic loss.</p>
</blockquote>
</aside>
<p>Tell me about it! I’ve been prototyping no less than 7 separate Rust programs in the last months – relatively complex too, with async / parallelism mechanics and a lot of zero-copy code blocks that involved way too much fighting with the borrow checker (at one point I gave up and started using <code>.clone()</code> in all non-hot coding paths because the return-of-investment ratio of developer time was abysmal).</p>
<p>I can confidently say that:</p>
<ol>
<li>
<p>Rust is absolutely fantastic, it can ingest thousands of events per second from network and the memory usage in release/optimized mode was like 25MB and the CPU barely registered 3% load. And I had several Rust jobs in the last years, intermingled (and sometimes mixed; maybe I should apply to <a href="http://Fly.io" rel="noopener nofollow ugc">Fly.io</a>!) with Elixir ones, and I’ve seen Rust programs not breaking a sweat working with 150k req/s in some meager dual-core CPU containers with 4GB RAM. But it’s not just the performance, that’s only a nice bonus. The correctness guarantees and the fearless concurrency <em>do work</em> and they do work amazing. The compiler has stopped me from introducing weird race conditions, many times. I learned and re-learned a lot.</p>
</li>
<li>
<p>…but if you want to prototype quickly and make a proof-of-concept <strong>THEN STAY THE HELL AWAY from Rust</strong>! <img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6c3193d1dd46244da3c8c6f719c9f5e2abdd5ae8.gif?v=15" title=":003:" class="emoji emoji-custom" alt=":003:" loading="lazy" width="20" height="20"> (Unless you’re already a master which I am working hard on becoming but not quite there yet.) Rust is not good for prototypes. I dearly regret not writing a library for the network protocols I needed in Golang or Elixir. I could have iterated no less than 5x to 10x faster after that initial time investment. I am not joking. Later on I did a more detailed GitHub search and found a Golang library, and honestly, it took me 2 hours both to relearn Golang <em>and</em> write a prototype that took me 2 weeks with Rust. The difference is that huge. (Although the Rust libraries I had to work with were train wrecks and I had to assemble a working solution out of the ruins of 4 of them – so that was a factor as well).</p>
</li>
</ol> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="263865" data-batch-url="/posts/batch_likers">
                        2
                      </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/getting-primary-key-as-null-after-creating-a-new-user/50766/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-263865" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="263865"
                     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 #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/50766/load_more?page=3">Load more posts (2 remaining)</a>
</div></template></turbo-stream>