From 6f0442d63381d0f72b9830166350d5f3c0dbf615 Mon Sep 17 00:00:00 2001 From: miteruzo Date: Sun, 20 Sep 2026 00:11:19 +0900 Subject: [PATCH] =?UTF-8?q?#55=20=E3=83=9E=E3=82=A4=E3=82=B0=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=83=BB=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=81=AE=E3=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20260919000000_create_languages.rb | 20 +++++++++++++ .../migrate/20260919010000_create_scripts.rb | 20 +++++++++++++ .../migrate/20260919020000_create_locales.rb | 25 +++++++++++++++++ ...20260919030000_add_columns_to_tag_names.rb | 28 +++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 backend/db/migrate/20260919000000_create_languages.rb create mode 100644 backend/db/migrate/20260919010000_create_scripts.rb create mode 100644 backend/db/migrate/20260919020000_create_locales.rb create mode 100644 backend/db/migrate/20260919030000_add_columns_to_tag_names.rb diff --git a/backend/db/migrate/20260919000000_create_languages.rb b/backend/db/migrate/20260919000000_create_languages.rb new file mode 100644 index 0000000..e9f1887 --- /dev/null +++ b/backend/db/migrate/20260919000000_create_languages.rb @@ -0,0 +1,20 @@ +class CreateLanguages < ActiveRecord::Migration[8.0] + def up + create_table :languages, id: { type: :string, limit: 16 }, primary_key: :code do |t| + t.string :name, null: false + t.datetime :deprecated_at, index: true + t.datetime :created_at, null: false + end + + execute <<~SQL + INSERT INTO + languages(code, name, created_at) + VALUES + ('ja', '日本語', #{ connection.quote Time.current }) + SQL + end + + def down + drop_table :languages + end +end diff --git a/backend/db/migrate/20260919010000_create_scripts.rb b/backend/db/migrate/20260919010000_create_scripts.rb new file mode 100644 index 0000000..1ebb5ac --- /dev/null +++ b/backend/db/migrate/20260919010000_create_scripts.rb @@ -0,0 +1,20 @@ +class CreateScripts < ActiveRecord::Migration[8.0] + def up + create_table :scripts, id: { type: 'CHAR(4)' }, primary_key: :code do |t| + t.string :name, null: false + t.datetime :deprecated_at, index: true + t.datetime :created_at, null: false + end + + execute <<~SQL + INSERT INTO + scripts(code, name, created_at) + VALUES + ('Jpan', '漢字および仮名文字', #{ connection.quote Time.current }) + SQL + end + + def down + drop_table :scripts + end +end diff --git a/backend/db/migrate/20260919020000_create_locales.rb b/backend/db/migrate/20260919020000_create_locales.rb new file mode 100644 index 0000000..afcd475 --- /dev/null +++ b/backend/db/migrate/20260919020000_create_locales.rb @@ -0,0 +1,25 @@ +class CreateLocales < ActiveRecord::Migration[8.0] + def up + create_table :locales, id: { type: :string, limit: 32 }, primary_key: :code do |t| + t.string :language_code, limit: 16, null: false, index: true + t.column :script_code, 'CHAR(4)', null: false + t.string :name, null: false + t.datetime :deprecated_at, index: true + t.datetime :created_at, null: false + + t.foreign_key :languages, column: :language_code, primary_key: :code + t.foreign_key :scripts, column: :script_code, primary_key: :code + end + + execute <<~SQL + INSERT INTO + locales(code, language_code, script_code, name, created_at) + VALUES + ('ja', 'ja', 'Jpan', '日本語', #{ connection.quote Time.current }) + SQL + end + + def down + drop_table :locales + end +end diff --git a/backend/db/migrate/20260919030000_add_columns_to_tag_names.rb b/backend/db/migrate/20260919030000_add_columns_to_tag_names.rb new file mode 100644 index 0000000..c0e3784 --- /dev/null +++ b/backend/db/migrate/20260919030000_add_columns_to_tag_names.rb @@ -0,0 +1,28 @@ +class AddColumnsToTagNames < ActiveRecord::Migration[8.0] + def up + add_column :tag_names, :language_code, :string, + limit: 16, null: false, after: :id, default: 'ja' + add_column :tag_names, :script_code, 'CHAR(4)', + null: false, after: :name, default: 'Jpan' + + add_foreign_key :tag_names, :languages, column: :language_code, primary_key: :code + add_foreign_key :tag_names, :scripts, column: :script_code, primary_key: :code + + remove_index :tag_names, :name + add_index :tag_names, [:language_code, :name], unique: true + + change_column_default :tag_names, :language_code, from: 'ja', to: nil + change_column_default :tag_names, :script_code, from: 'Jpan', to: nil + end + + def down + remove_foreign_key :tag_names, column: :language_code + remove_foreign_key :tag_names, column: :script_code + + remove_index :tag_names, [:language_code, :name] + add_index :tag_names, :name, unique: true + + remove_column :tag_names, :script_code + remove_column :tag_names, :language_code + end +end