Luna | | t
<div class="walloftext">
<p>
To meet the requests of archivers, statisticians, and data analysts alike,
Furbooru provides data dumps on a nightly basis. These data consist only
of publicly accessible database contents. These dumps are provided in
<code>pg_dump</code>'s custom format, and are created using latest PostgreSQL 17.x.
</p>
<p>
To load an entire dump (requires 2377 MB of free storage):
</p>
<pre>
dropdb --if-exists furbooru
createdb furbooru
pg_restore -O -d furbooru furbooru_public_dump_2025_03_25.pgdump
</pre>
<p>
This will create the database <code>furbooru</code> with the following
table layout:
</p>
<h3>public.artist_links</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>tag_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>url</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.badge_awards</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>badge_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>text</td>
<td>✔</td>
</tr>
</tbody>
</table>
<h3>public.badges</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>title</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>description</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>image_url</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.comments</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td>✔</td>
</tr>
<tr>
<td>body</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.duplicate_reports</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>duplicate_of_image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td>✔</td>
</tr>
<tr>
<td>state</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>reason</td>
<td>text</td>
<td>✔</td>
</tr>
</tbody>
</table>
<h3>public.forums</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>topic_count</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>post_count</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>name</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>short_name</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>description</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.galleries</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>thumbnail_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>image_count</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>title</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>spoiler_warning</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>description</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.gallery_interactions</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>gallery_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>position</td>
<td>integer</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.image_duplicates</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>target_id</td>
<td>bigint</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.image_faves</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.image_features</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.image_intensities</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>nw_intensity</td>
<td>double precision</td>
<td></td>
</tr>
<tr>
<td>ne_intensity</td>
<td>double precision</td>
<td></td>
</tr>
<tr>
<td>sw_intensity</td>
<td>double precision</td>
<td></td>
</tr>
<tr>
<td>se_intensity</td>
<td>double precision</td>
<td></td>
</tr>
<tr>
<td>avg_intensity</td>
<td>double precision</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.image_sources</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>source</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.image_taggings</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>tag_id</td>
<td>bigint</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.images</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>image_width</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>image_height</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>image_size</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>comment_count</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>score</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>favorites</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>upvotes</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>downvotes</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>hides</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>image_aspect_ratio</td>
<td>double precision</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td>✔</td>
</tr>
<tr>
<td>image_mime_type</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>image_format</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>image_name</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>version_path</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>image_sha512_hash</td>
<td>text</td>
<td>✔</td>
</tr>
<tr>
<td>image_orig_sha512_hash</td>
<td>text</td>
<td>✔</td>
</tr>
</tbody>
</table>
<h3>public.posts</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>topic_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td>✔</td>
</tr>
<tr>
<td>body</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.source_changes</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td>✔</td>
</tr>
<tr>
<td>new_value</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.tag_aliases</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>tag_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>target_tag_id</td>
<td>bigint</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.tag_changes</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>image_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>user_id</td>
<td>bigint</td>
<td>✔</td>
</tr>
<tr>
<td>tag_id</td>
<td>bigint</td>
<td>✔</td>
</tr>
<tr>
<td>added</td>
<td>boolean</td>
<td></td>
</tr>
<tr>
<td>tag_name_cache</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.tag_implications</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>tag_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>target_tag_id</td>
<td>bigint</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.tags</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>image_count</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>name</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>slug</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>category</td>
<td>text</td>
<td>✔</td>
</tr>
<tr>
<td>description</td>
<td>text</td>
<td>✔</td>
</tr>
<tr>
<td>short_description</td>
<td>text</td>
<td>✔</td>
</tr>
</tbody>
</table>
<h3>public.topics</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>forum_id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>post_count</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>view_count</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>created_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>updated_at</td>
<td>timestamp</td>
<td></td>
</tr>
<tr>
<td>sticky</td>
<td>boolean</td>
<td></td>
</tr>
<tr>
<td>locked</td>
<td>boolean</td>
<td></td>
</tr>
<tr>
<td>title</td>
<td>text</td>
<td></td>
</tr>
<tr>
<td>slug</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<h3>public.users</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Nullable?</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>bigint</td>
<td></td>
</tr>
<tr>
<td>name</td>
<td>text</td>
<td></td>
</tr>
</tbody>
</table>
<p>
Finer granularity over the imported data can be controlled with <code>pg_restore</code>
flags; see <a href="https://www.postgresql.org/docs/current/app-pgrestore.html">the documentation</a>
for more detail.
</p>
<h3>Download</h3>
<table class="table">
<thead>
<tr>
<th>Size</th>
<th>Link</th>
<th>SHA-256</th>
</tr>
</thead>
<tbody>
<tr>
<td>241M</td>
<td><a href="https://files.furrycdn.org/furbooru_public_dump_2025_03_25.pgdump">furbooru_public_dump_2025_03_25.pgdump</a></td>
<td>1cf8822ac89ab5f5c86c357cf43eb5d4fd9d73198ccfcad12f095bff04104c6e</td>
</tr>
</tbody>
</table>
<p>
Note: these dumps do not include images.
</p>
</div>
|