mirror of
https://github.com/fastapi-users/fastapi-users.git
synced 2025-08-16 11:53:40 +08:00
Automated deployment: Fri May 29 05:53:10 UTC 2020 e850871e7935c460e9c169385dd7d42b45e0320c
This commit is contained in:
@ -639,6 +639,19 @@
|
||||
In Python code
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="In Python code">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#mongodb" class="md-nav__link">
|
||||
MongoDB
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@ -664,10 +677,30 @@
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#mongodb" class="md-nav__link">
|
||||
<a href="#mongodb_1" class="md-nav__link">
|
||||
MongoDB
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="MongoDB">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#mongo-shell" class="md-nav__link">
|
||||
Mongo shell
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#python" class="md-nav__link">
|
||||
Python
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
@ -757,6 +790,19 @@
|
||||
In Python code
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="In Python code">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#mongodb" class="md-nav__link">
|
||||
MongoDB
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@ -782,10 +828,30 @@
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#mongodb" class="md-nav__link">
|
||||
<a href="#mongodb_1" class="md-nav__link">
|
||||
MongoDB
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="MongoDB">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#mongo-shell" class="md-nav__link">
|
||||
Mongo shell
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#python" class="md-nav__link">
|
||||
Python
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
@ -866,6 +932,15 @@
|
||||
<span class="n">user_id</span><span class="p">:</span> <span class="n">UUID4</span>
|
||||
</code></pre></div>
|
||||
|
||||
<h4 id="mongodb">MongoDB<a class="headerlink" href="#mongodb" title="Permanent link">¶</a></h4>
|
||||
<p>To avoid any issues, it's recommended to use the <code>standard</code> UUID representation when instantiating the MongoDB client:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="n">DATABASE_URL</span> <span class="o">=</span> <span class="s2">"mongodb://localhost:27017"</span>
|
||||
<span class="n">client</span> <span class="o">=</span> <span class="n">motor</span><span class="o">.</span><span class="n">motor_asyncio</span><span class="o">.</span><span class="n">AsyncIOMotorClient</span><span class="p">(</span>
|
||||
<span class="n">DATABASE_URL</span><span class="p">,</span> <span class="n">uuidRepresentation</span><span class="o">=</span><span class="s2">"standard"</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div>
|
||||
|
||||
<p>This parameter controls how the UUID values will be encoded in the database. By default, it's set to <code>pythonLegacy</code> but new applications should consider setting this to <code>standard</code> for cross language compatibility. <a href="https://pymongo.readthedocs.io/en/stable/api/pymongo/mongo_client.html#pymongo.mongo_client.MongoClient">Read more about this</a>.</p>
|
||||
<h3 id="in-database">In database<a class="headerlink" href="#in-database" title="Permanent link">¶</a></h3>
|
||||
<p>Id. were before stored as strings in the database. You should make a migration to convert string data to UUID data.</p>
|
||||
<div class="admonition danger">
|
||||
@ -896,7 +971,8 @@
|
||||
<div class="highlight"><pre><span></span><code><span class="k">ALTER</span> <span class="k">TABLE</span> <span class="ss">"user"</span> <span class="k">MODIFY</span> <span class="n">id</span> <span class="nb">CHAR</span><span class="p">(</span><span class="mi">36</span><span class="p">);</span>
|
||||
</code></pre></div>
|
||||
|
||||
<h4 id="mongodb">MongoDB<a class="headerlink" href="#mongodb" title="Permanent link">¶</a></h4>
|
||||
<h4 id="mongodb_1">MongoDB<a class="headerlink" href="#mongodb_1" title="Permanent link">¶</a></h4>
|
||||
<h5 id="mongo-shell">Mongo shell<a class="headerlink" href="#mongo-shell" title="Permanent link">¶</a></h5>
|
||||
<p>For MongoDB, we can use a <code>forEach</code> iterator to convert the id. for each document:</p>
|
||||
<div class="highlight"><pre><span></span><code><span class="nx">db</span><span class="p">.</span><span class="nx">getCollection</span><span class="p">(</span><span class="s1">'users'</span><span class="p">).</span><span class="nx">find</span><span class="p">().</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">user</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">uuid</span> <span class="o">=</span> <span class="nx">UUID</span><span class="p">(</span><span class="nx">user</span><span class="p">.</span><span class="nx">id</span><span class="p">);</span>
|
||||
@ -904,6 +980,26 @@
|
||||
<span class="p">});</span>
|
||||
</code></pre></div>
|
||||
|
||||
<h5 id="python">Python<a class="headerlink" href="#python" title="Permanent link">¶</a></h5>
|
||||
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">uuid</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">motor.motor_asyncio</span>
|
||||
|
||||
|
||||
<span class="k">async</span> <span class="k">def</span> <span class="nf">migrate_uuid</span><span class="p">():</span>
|
||||
<span class="n">client</span> <span class="o">=</span> <span class="n">motor</span><span class="o">.</span><span class="n">motor_asyncio</span><span class="o">.</span><span class="n">AsyncIOMotorClient</span><span class="p">(</span>
|
||||
<span class="n">DATABASE_URL</span><span class="p">,</span> <span class="n">uuidRepresentation</span><span class="o">=</span><span class="s2">"standard"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">db</span> <span class="o">=</span> <span class="n">client</span><span class="p">[</span><span class="s2">"database_name"</span><span class="p">]</span>
|
||||
<span class="n">users</span> <span class="o">=</span> <span class="n">db</span><span class="p">[</span><span class="s2">"users"</span><span class="p">]</span>
|
||||
|
||||
<span class="k">async</span> <span class="k">for</span> <span class="n">user</span> <span class="ow">in</span> <span class="n">users</span><span class="o">.</span><span class="n">find</span><span class="p">({}):</span>
|
||||
<span class="k">await</span> <span class="n">users</span><span class="o">.</span><span class="n">update_one</span><span class="p">(</span>
|
||||
<span class="p">{</span><span class="s2">"_id"</span><span class="p">:</span> <span class="n">user</span><span class="p">[</span><span class="s2">"_id"</span><span class="p">]},</span>
|
||||
<span class="p">{</span><span class="s2">"$set"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"id"</span><span class="p">:</span> <span class="n">uuid</span><span class="o">.</span><span class="n">UUID</span><span class="p">(</span><span class="n">user</span><span class="p">[</span><span class="s2">"id"</span><span class="p">])}},</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div>
|
||||
|
||||
<h2 id="splitted-routers">Splitted routers<a class="headerlink" href="#splitted-routers" title="Permanent link">¶</a></h2>
|
||||
<p>You now have the responsibility to <strong>wire the routers</strong>. FastAPI Users doesn't give a bloated users router anymore.</p>
|
||||
<p><strong>Event handlers</strong> are also removed. You have to provide your "after-" logic as a parameter of the router generator.</p>
|
||||
|
File diff suppressed because one or more lines are too long
40
sitemap.xml
40
sitemap.xml
@ -1,83 +1,83 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url><url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2020-05-26</lastmod>
|
||||
<lastmod>2020-05-29</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
</urlset>
|
BIN
sitemap.xml.gz
BIN
sitemap.xml.gz
Binary file not shown.
Reference in New Issue
Block a user