このコミットが含まれているのは:
@@ -7,6 +7,8 @@ class AddColumnsToTagNames < ActiveRecord::Migration[8.0]
|
|||||||
null: false, after: :name, default: 'Jpan'
|
null: false, after: :name, default: 'Jpan'
|
||||||
add_column :tag_names, :primary_flg, :boolean,
|
add_column :tag_names, :primary_flg, :boolean,
|
||||||
null: false, after: :script_code, default: true
|
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, :languages, column: :language_code, primary_key: :code
|
||||||
add_foreign_key :tag_names, :scripts, column: :script_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]
|
remove_index :tag_names, [:language_code, :name]
|
||||||
add_index :tag_names, :name, unique: true
|
add_index :tag_names, :name, unique: true
|
||||||
|
|
||||||
|
remove_column :tag_names, :auto_generated
|
||||||
remove_column :tag_names, :primary_flg
|
remove_column :tag_names, :primary_flg
|
||||||
remove_column :tag_names, :script_code
|
remove_column :tag_names, :script_code
|
||||||
remove_column :tag_names, :language_code
|
remove_column :tag_names, :language_code
|
||||||
|
|||||||
@@ -9,23 +9,17 @@ class AddNamesToTagVersions < ActiveRecord::Migration[8.0]
|
|||||||
|
|
||||||
say_with_time 'Backfilling multilingual tag version names' do
|
say_with_time 'Backfilling multilingual tag version names' do
|
||||||
TagVersion.find_each do |version|
|
TagVersion.find_each do |version|
|
||||||
names = [{
|
aliases = version.aliases.to_s.split.filter_map do |name|
|
||||||
language_code: 'ja',
|
name.present? &&
|
||||||
name: version.name,
|
{ name:,
|
||||||
script_code: 'Jpan',
|
script_code: 'Jpan',
|
||||||
primary_flg: true,
|
auto_generated: false }
|
||||||
auto_generated: false }]
|
end
|
||||||
names.concat(version.aliases.to_s.split.filter_map { |name|
|
names = { ja: { name: version.name,
|
||||||
next if name.blank?
|
script_code: 'Jpan',
|
||||||
|
auto_generated: false,
|
||||||
{
|
aliases: } }
|
||||||
language_code: 'ja',
|
version.update_columns(names:)
|
||||||
name:,
|
|
||||||
script_code: 'Jpan',
|
|
||||||
primary_flg: false,
|
|
||||||
auto_generated: false }
|
|
||||||
})
|
|
||||||
version.update_columns(names: names)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
生成ファイル
+2
-2
@@ -10,7 +10,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# 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|
|
create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
|
||||||
t.string "name", null: false
|
t.string "name", null: false
|
||||||
t.string "record_type", 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 "name", null: false
|
||||||
t.string "script_code", limit: 4, null: false
|
t.string "script_code", limit: 4, null: false
|
||||||
t.boolean "primary_flg", null: false
|
t.boolean "primary_flg", null: false
|
||||||
|
t.boolean "auto_generated", default: true, null: false
|
||||||
t.bigint "canonical_id"
|
t.bigint "canonical_id"
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_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.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 ["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 ["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 ["primary_tag_id", "language_code"], name: "index_tag_names_on_primary_tag_id_and_language_code", unique: true
|
||||||
|
|||||||
新しいイシューから参照
ユーザーをブロックする