diff --git a/backend/db/migrate/20260922030000_add_columns_to_tag_names.rb b/backend/db/migrate/20260922030000_add_columns_to_tag_names.rb index 083a414..6f203ca 100644 --- a/backend/db/migrate/20260922030000_add_columns_to_tag_names.rb +++ b/backend/db/migrate/20260922030000_add_columns_to_tag_names.rb @@ -7,6 +7,8 @@ class AddColumnsToTagNames < ActiveRecord::Migration[8.0] null: false, after: :name, default: 'Jpan' add_column :tag_names, :primary_flg, :boolean, null: false, after: :script_code, default: true + add_column :tag_names, :auto_generated, :boolean, + null: false, default: true, after: :primary_flg add_foreign_key :tag_names, :languages, column: :language_code, primary_key: :code add_foreign_key :tag_names, :scripts, column: :script_code, primary_key: :code @@ -51,6 +53,7 @@ class AddColumnsToTagNames < ActiveRecord::Migration[8.0] remove_index :tag_names, [:language_code, :name] add_index :tag_names, :name, unique: true + remove_column :tag_names, :auto_generated remove_column :tag_names, :primary_flg remove_column :tag_names, :script_code remove_column :tag_names, :language_code diff --git a/backend/db/migrate/20260922040000_add_names_to_tag_versions.rb b/backend/db/migrate/20260922040000_add_names_to_tag_versions.rb index c64f9eb..af7e5a7 100644 --- a/backend/db/migrate/20260922040000_add_names_to_tag_versions.rb +++ b/backend/db/migrate/20260922040000_add_names_to_tag_versions.rb @@ -9,23 +9,17 @@ class AddNamesToTagVersions < ActiveRecord::Migration[8.0] say_with_time 'Backfilling multilingual tag version names' do TagVersion.find_each do |version| - names = [{ - language_code: 'ja', - name: version.name, - script_code: 'Jpan', - primary_flg: true, - auto_generated: false }] - names.concat(version.aliases.to_s.split.filter_map { |name| - next if name.blank? - - { - language_code: 'ja', - name:, - script_code: 'Jpan', - primary_flg: false, - auto_generated: false } - }) - version.update_columns(names: names) + aliases = version.aliases.to_s.split.filter_map do |name| + name.present? && + { name:, + script_code: 'Jpan', + auto_generated: false } + end + names = { ja: { name: version.name, + script_code: 'Jpan', + auto_generated: false, + aliases: } } + version.update_columns(names:) end end diff --git a/backend/db/migrate/20260922050000_add_auto_generated_to_tag_names.rb b/backend/db/migrate/20260922050000_add_auto_generated_to_tag_names.rb deleted file mode 100644 index 79cb3cc..0000000 --- a/backend/db/migrate/20260922050000_add_auto_generated_to_tag_names.rb +++ /dev/null @@ -1,19 +0,0 @@ -class AddAutoGeneratedToTagNames < ActiveRecord::Migration[8.0] - class TagVersion < ActiveRecord::Base - self.table_name = 'tag_versions' - end - - def up - add_column :tag_names, :auto_generated, :boolean, null: false, default: false - TagVersion.reset_column_information - - TagVersion.find_each do |version| - names = Array(version.names).map { |name| name.merge('auto_generated' => false) } - version.update_columns(names: names) - end - end - - def down - remove_column :tag_names, :auto_generated - end -end diff --git a/backend/db/schema.rb b/backend/db/schema.rb index bab1a8e..238aac4 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_09_22_050000) do +ActiveRecord::Schema[8.0].define(version: 2026_09_22_040000) 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 @@ -450,11 +450,11 @@ ActiveRecord::Schema[8.0].define(version: 2026_09_22_050000) do t.string "name", null: false t.string "script_code", limit: 4, null: false t.boolean "primary_flg", null: false + t.boolean "auto_generated", default: true, 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.boolean "auto_generated", default: false, null: false 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