このコミットが含まれているのは:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
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
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする