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