diff --git a/backend/app/controllers/wiki_pages_controller.rb b/backend/app/controllers/wiki_pages_controller.rb index abf2748..797c088 100644 --- a/backend/app/controllers/wiki_pages_controller.rb +++ b/backend/app/controllers/wiki_pages_controller.rb @@ -1,9 +1,9 @@ class WikiPagesController < ApplicationController + # 互換性のための Facade API + rescue_from Wiki::Commit::Conflict, with: :render_wiki_conflict def index - # 互換性のための化石リソース - title = params[:title].to_s.strip descriptions = TagDescription.where(language_code: 'ja') diff --git a/backend/db/migrate/20261015000000_drop_wiki_pages.rb b/backend/db/migrate/20261015000000_drop_wiki_pages.rb new file mode 100644 index 0000000..5884566 --- /dev/null +++ b/backend/db/migrate/20261015000000_drop_wiki_pages.rb @@ -0,0 +1,9 @@ +class DropWikiPages < ActiveRecord::Migration[8.0] + def change + drop_table :wiki_versions + drop_table :wiki_revision_lines + drop_table :wiki_lines + drop_table :wiki_revisions + drop_table :wiki_pages + end +end diff --git a/backend/db/migrate/20261015003000_remove_tag_name_id_from_tags.rb b/backend/db/migrate/20261015003000_remove_tag_name_id_from_tags.rb new file mode 100644 index 0000000..701fd99 --- /dev/null +++ b/backend/db/migrate/20261015003000_remove_tag_name_id_from_tags.rb @@ -0,0 +1,11 @@ +class RemoveTagNameIdFromTags < ActiveRecord::Migration[8.0] + def up + remove_foreign_key :tags, column: :tag_name_id + remove_foreign_key :tag_names, column: :canonical_id + + remove_column :tags, :tag_name_id + remove_column :tag_names, :canonical_id + end + + def down = raise ActiveRecord::IrreversibleMigration, '戻せません.' +end diff --git a/backend/db/migrate/20261015010000_delete_name_for_wiki_from_tag_names.rb b/backend/db/migrate/20261015010000_delete_name_for_wiki_from_tag_names.rb new file mode 100644 index 0000000..152c30a --- /dev/null +++ b/backend/db/migrate/20261015010000_delete_name_for_wiki_from_tag_names.rb @@ -0,0 +1,15 @@ +class DeleteNameForWikiFromTagNames < ActiveRecord::Migration[8.0] + def up + execute <<~SQL + DELETE + FROM + tag_names + WHERE + tag_id IS NULL + SQL + + change_column_null :tag_names, :tag_id, false + end + + def down = raise ActiveRecord::IrreversibleMigration, '戻せません.' +end diff --git a/backend/db/schema.rb b/backend/db/schema.rb index dda45de..bf72236 100644 --- a/backend/db/schema.rb +++ b/backend/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.0].define(version: 2026_10_08_010000) do +ActiveRecord::Schema[8.0].define(version: 2026_10_15_010000) 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 @@ -578,17 +578,15 @@ ActiveRecord::Schema[8.0].define(version: 2026_10_08_010000) do end create_table "tag_names", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.bigint "tag_id" + t.bigint "tag_id", null: false t.string "language_code", limit: 16, null: false t.string "name", null: false t.string "script_code", limit: 4, null: false t.boolean "primary_flg", null: false t.boolean "auto_generated", default: false, null: false - t.bigint "canonical_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.virtual "primary_tag_id", type: :bigint, as: "(case when `primary_flg` then `tag_id` else NULL end)" - t.index ["canonical_id"], name: "index_tag_names_on_canonical_id" t.index ["language_code", "name"], name: "index_tag_names_on_language_code_and_name", unique: true t.index ["primary_tag_id", "language_code"], name: "index_tag_names_on_primary_tag_id_and_language_code", unique: true t.index ["script_code"], name: "fk_rails_dd783b3d1c" @@ -625,7 +623,6 @@ ActiveRecord::Schema[8.0].define(version: 2026_10_08_010000) do end create_table "tags", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.bigint "tag_name_id", null: false t.string "category", default: "general", null: false t.datetime "deprecated_at" t.datetime "created_at", null: false @@ -633,7 +630,6 @@ ActiveRecord::Schema[8.0].define(version: 2026_10_08_010000) do t.integer "post_count", default: 0, null: false t.integer "version_no", null: false t.index ["deprecated_at"], name: "index_tags_on_deprecated_at" - t.index ["tag_name_id"], name: "index_tags_on_tag_name_id", unique: true t.check_constraint "(`deprecated_at` is null) or (`category` <> _utf8mb4'nico')", name: "chk_tags_deprecated_at_not_nico" t.check_constraint "`version_no` > 0", name: "chk_tags_version_no_positive" end @@ -773,76 +769,6 @@ ActiveRecord::Schema[8.0].define(version: 2026_10_08_010000) do t.index ["banned_at"], name: "index_users_on_banned_at" end - create_table "wiki_lines", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.string "sha256", limit: 64, null: false - t.text "body", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["sha256"], name: "index_wiki_lines_on_sha256", unique: true - end - - create_table "wiki_pages", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.bigint "tag_name_id", null: false - t.text "body", null: false - 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.datetime "discarded_at" - t.integer "version_no", null: false - t.index ["created_user_id"], name: "index_wiki_pages_on_created_user_id" - t.index ["discarded_at"], name: "index_wiki_pages_on_discarded_at" - t.index ["tag_name_id"], name: "index_wiki_pages_on_tag_name_id", unique: true - t.index ["updated_user_id"], name: "index_wiki_pages_on_updated_user_id" - t.check_constraint "`version_no` > 0", name: "chk_wiki_pages_version_no_positive" - end - - create_table "wiki_revision_lines", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.bigint "wiki_revision_id", null: false - t.integer "position", null: false - t.bigint "wiki_line_id", null: false - t.index ["wiki_line_id"], name: "index_wiki_revision_lines_on_wiki_line_id" - t.index ["wiki_revision_id", "position"], name: "index_wiki_revision_lines_on_wiki_revision_id_and_position", unique: true - t.index ["wiki_revision_id", "wiki_line_id"], name: "index_wiki_revision_lines_on_wiki_revision_id_and_wiki_line_id" - t.index ["wiki_revision_id"], name: "index_wiki_revision_lines_on_wiki_revision_id" - end - - create_table "wiki_revisions", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.bigint "wiki_page_id", null: false - t.bigint "base_revision_id" - t.bigint "created_user_id", null: false - t.integer "kind", default: 0, null: false - t.bigint "redirect_page_id" - t.string "message" - t.integer "lines_count", default: 0, null: false - t.string "tree_sha256", limit: 64 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["base_revision_id"], name: "index_wiki_revisions_on_base_revision_id" - t.index ["created_user_id"], name: "index_wiki_revisions_on_created_user_id" - t.index ["kind"], name: "index_wiki_revisions_on_kind" - t.index ["redirect_page_id"], name: "index_wiki_revisions_on_redirect_page_id" - t.index ["tree_sha256"], name: "index_wiki_revisions_on_tree_sha256" - t.index ["wiki_page_id", "id"], name: "index_wiki_revisions_on_wiki_page_id_and_id" - t.index ["wiki_page_id"], name: "index_wiki_revisions_on_wiki_page_id" - end - - create_table "wiki_versions", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.bigint "wiki_page_id", null: false - t.integer "version_no", null: false - t.string "event_type", null: false - t.string "title", null: false - t.text "body", null: false - t.text "reason" - t.datetime "created_at", null: false - t.bigint "created_by_user_id" - t.index ["created_by_user_id"], name: "index_wiki_versions_on_created_by_user_id" - t.index ["wiki_page_id", "version_no"], name: "index_wiki_versions_on_wiki_page_id_and_version_no", unique: true - t.index ["wiki_page_id"], name: "index_wiki_versions_on_wiki_page_id" - t.check_constraint "`event_type` in (_utf8mb4'create',_utf8mb4'update',_utf8mb4'discard',_utf8mb4'restore')", name: "wiki_versions_event_type_valid" - t.check_constraint "`version_no` > 0", name: "wiki_versions_version_no_positive" - 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 "gekanator_ai_runs", "gekanator_question_suggestions" @@ -915,12 +841,10 @@ ActiveRecord::Schema[8.0].define(version: 2026_10_08_010000) do add_foreign_key "tag_implications", "tags", column: "parent_tag_id" add_foreign_key "tag_names", "languages", column: "language_code", primary_key: "code" add_foreign_key "tag_names", "scripts", column: "script_code", primary_key: "code" - add_foreign_key "tag_names", "tag_names", column: "canonical_id" add_foreign_key "tag_names", "tags" add_foreign_key "tag_similarities", "tags" add_foreign_key "tag_similarities", "tags", column: "target_tag_id" add_foreign_key "tag_versions", "users", column: "created_by_user_id" - add_foreign_key "tags", "tag_names" add_foreign_key "theatre_comments", "theatres" add_foreign_key "theatre_comments", "users" add_foreign_key "theatre_programmes", "posts" @@ -945,15 +869,4 @@ ActiveRecord::Schema[8.0].define(version: 2026_10_08_010000) do add_foreign_key "user_post_views", "posts" add_foreign_key "user_post_views", "users" add_foreign_key "user_theme_slots", "users" - add_foreign_key "wiki_pages", "tag_names" - add_foreign_key "wiki_pages", "users", column: "created_user_id" - add_foreign_key "wiki_pages", "users", column: "updated_user_id" - add_foreign_key "wiki_revision_lines", "wiki_lines" - add_foreign_key "wiki_revision_lines", "wiki_revisions" - add_foreign_key "wiki_revisions", "users", column: "created_user_id" - add_foreign_key "wiki_revisions", "wiki_pages" - add_foreign_key "wiki_revisions", "wiki_pages", column: "redirect_page_id" - add_foreign_key "wiki_revisions", "wiki_revisions", column: "base_revision_id" - add_foreign_key "wiki_versions", "users", column: "created_by_user_id" - add_foreign_key "wiki_versions", "wiki_pages" end