# This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. # # This file is the source Rails uses to define your schema when running `bin/rails # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to # be faster and is potentially less error prone than running all of your # migrations from scratch. Old migrations may fail to apply correctly if those # migrations use external dependencies or application code. # # It's strongly recommended that you check this file into your version control system. ActiveRecord::Schema[8.0].define(version: 2025_06_29_140234) do create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.string "name", null: false t.string "record_type", null: false t.bigint "record_id", null: false t.bigint "blob_id", null: false t.datetime "created_at", null: false t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true end create_table "active_storage_blobs", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.string "key", null: false t.string "filename", null: false t.string "content_type" t.text "metadata" t.string "service_name", null: false t.bigint "byte_size", null: false t.string "checksum" t.datetime "created_at", null: false t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true end create_table "active_storage_variant_records", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.bigint "blob_id", null: false t.string "variation_digest", null: false t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true end create_table "ip_addresses", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.binary "ip_adress", limit: 16, null: false t.boolean "banned", default: false, null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false end create_table "nico_tag_relations", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.bigint "nico_tag_id", null: false t.bigint "tag_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["nico_tag_id"], name: "index_nico_tag_relations_on_nico_tag_id" t.index ["tag_id"], name: "index_nico_tag_relations_on_tag_id" end create_table "post_tags", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.bigint "post_id", null: false t.bigint "tag_id", null: false t.bigint "created_user_id" t.bigint "deleted_user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["created_user_id"], name: "index_post_tags_on_created_user_id" t.index ["deleted_user_id"], name: "index_post_tags_on_deleted_user_id" t.index ["post_id"], name: "index_post_tags_on_post_id" t.index ["tag_id"], name: "index_post_tags_on_tag_id" end create_table "posts", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.string "title", null: false t.string "url", limit: 2000, null: false t.string "thumbnail_base", limit: 2000, null: false t.bigint "parent_id" t.bigint "uploaded_user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["parent_id"], name: "index_posts_on_parent_id" t.index ["uploaded_user_id"], name: "index_posts_on_uploaded_user_id" end create_table "settings", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.bigint "user_id", null: false t.string "key", null: false t.json "value", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["user_id"], name: "index_settings_on_user_id" end create_table "tag_aliases", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.bigint "tag_id", null: false t.string "name", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["tag_id"], name: "index_tag_aliases_on_tag_id" end create_table "tags", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.string "name", null: false t.string "category", default: "general", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.integer "post_count", default: 0, null: false end create_table "user_ips", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.bigint "user_id", null: false t.bigint "ip_address_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["ip_address_id"], name: "index_user_ips_on_ip_address_id" t.index ["user_id"], name: "index_user_ips_on_user_id" end create_table "user_post_views", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.bigint "user_id", null: false t.bigint "post_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["post_id"], name: "index_user_post_views_on_post_id" t.index ["user_id"], name: "index_user_post_views_on_user_id" end create_table "users", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.string "name" t.string "inheritance_code", limit: 64, null: false t.string "role", null: false t.boolean "banned", default: false, null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false end create_table "wiki_pages", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.string "title", null: false t.bigint "tag_id" t.bigint "created_user_id", null: false t.bigint "updated_user_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["created_user_id"], name: "index_wiki_pages_on_created_user_id" t.index ["tag_id"], name: "index_wiki_pages_on_tag_id" t.index ["updated_user_id"], name: "index_wiki_pages_on_updated_user_id" end add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" add_foreign_key "nico_tag_relations", "tags" add_foreign_key "nico_tag_relations", "tags", column: "nico_tag_id" add_foreign_key "post_tags", "posts" add_foreign_key "post_tags", "tags" add_foreign_key "post_tags", "users", column: "created_user_id" add_foreign_key "post_tags", "users", column: "deleted_user_id" add_foreign_key "posts", "posts", column: "parent_id" add_foreign_key "posts", "users", column: "uploaded_user_id" add_foreign_key "settings", "users" add_foreign_key "tag_aliases", "tags" add_foreign_key "user_ips", "ip_addresses" add_foreign_key "user_ips", "users" add_foreign_key "user_post_views", "posts" add_foreign_key "user_post_views", "users" add_foreign_key "wiki_pages", "tags" add_foreign_key "wiki_pages", "users", column: "created_user_id" add_foreign_key "wiki_pages", "users", column: "updated_user_id" end