Rails/utf8mb4
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Rails/utf8mb4);
*目次 [#qa6e1da1]
#contents
*関連ページ [#k06a7f2d]
*参考情報 [#h52062b8]
-[[ActiveRecordをutf8mb4で動かす - Qiita:http://qiita.com...
-[[MySQLのencodingをutf8からutfmb4に変更して寿司ビール問...
*2021年の事情 [#o3b1fa48]
-MySQL 5.7の途中からinnodb関連の設定変更は必要なくなった。
-[[MySQL(InnoDB) で charset を utf8mb4 にする注意点の現在...
*Rails4でMySQLで絵文字を扱う [#z3af2636]
-MySQLのutf8では絵文字が保存できないので、utf8mb4を使う必...
-ALTER TABLEなどで変更する場合、列ごとの文字コードまで変...
-一旦DB全体をドロップしたutf8mb4で作りなおすのが簡単。
**MySQLの設定変更 [#bcaf5560]
-[[MySQL/utf8mb4]]に従って設定変更する。
**database.ymlの変更 [#q011559b]
-encodingを変更(encodingだけじゃなく、charsetやcollation...
#pre{{
default: &default
adapter: mysql2
encoding: utf8mb4
charset: utf8mb4
collation: utf8mb4_bin
pool: 5
}}
**DBの作り直し [#y34a806a]
-データのエクスポート。--no-create-infoを指定してcreate t...
mysqldump --single-transaction --no-create-info --replac...
-''initializers/ar_innodb_row_format.rb''を作成する。[[Ac...
--Rails5の場合
#pre{{
module InnodbRowFormat
def create_table(table_name, options = {})
table_options = options.merge(options: 'ENGINE=InnoDB...
super(table_name, table_options) do |td|
yield td if block_given?
end
end
end
ActiveSupport.on_load :active_record do
module ActiveRecord::ConnectionAdapters
class AbstractMysqlAdapter
prepend InnodbRowFormat
end
end
end
}}
--Rails4の場合
#pre{{
ActiveSupport.on_load :active_record do
module ActiveRecord::ConnectionAdapters
class AbstractMysqlAdapter
def create_table_with_innodb_row_format(table_name,...
table_options = options.merge(:options => 'ENGINE...
create_table_without_innodb_row_format(table_name...
yield td if block_given?
end
end
alias_method_chain :create_table, :innodb_row_format
end
end
end
}}
- 現在のschema.rbに従って作り直し
bundle exec rake db:reset RAILS_ENV=production
**データのインポート [#m2a17511]
-そのままutf8mb4はutf8の上位互換なのでそのままインポート...
mysql asl_production < data.sql
終了行:
&tag(Rails/utf8mb4);
*目次 [#qa6e1da1]
#contents
*関連ページ [#k06a7f2d]
*参考情報 [#h52062b8]
-[[ActiveRecordをutf8mb4で動かす - Qiita:http://qiita.com...
-[[MySQLのencodingをutf8からutfmb4に変更して寿司ビール問...
*2021年の事情 [#o3b1fa48]
-MySQL 5.7の途中からinnodb関連の設定変更は必要なくなった。
-[[MySQL(InnoDB) で charset を utf8mb4 にする注意点の現在...
*Rails4でMySQLで絵文字を扱う [#z3af2636]
-MySQLのutf8では絵文字が保存できないので、utf8mb4を使う必...
-ALTER TABLEなどで変更する場合、列ごとの文字コードまで変...
-一旦DB全体をドロップしたutf8mb4で作りなおすのが簡単。
**MySQLの設定変更 [#bcaf5560]
-[[MySQL/utf8mb4]]に従って設定変更する。
**database.ymlの変更 [#q011559b]
-encodingを変更(encodingだけじゃなく、charsetやcollation...
#pre{{
default: &default
adapter: mysql2
encoding: utf8mb4
charset: utf8mb4
collation: utf8mb4_bin
pool: 5
}}
**DBの作り直し [#y34a806a]
-データのエクスポート。--no-create-infoを指定してcreate t...
mysqldump --single-transaction --no-create-info --replac...
-''initializers/ar_innodb_row_format.rb''を作成する。[[Ac...
--Rails5の場合
#pre{{
module InnodbRowFormat
def create_table(table_name, options = {})
table_options = options.merge(options: 'ENGINE=InnoDB...
super(table_name, table_options) do |td|
yield td if block_given?
end
end
end
ActiveSupport.on_load :active_record do
module ActiveRecord::ConnectionAdapters
class AbstractMysqlAdapter
prepend InnodbRowFormat
end
end
end
}}
--Rails4の場合
#pre{{
ActiveSupport.on_load :active_record do
module ActiveRecord::ConnectionAdapters
class AbstractMysqlAdapter
def create_table_with_innodb_row_format(table_name,...
table_options = options.merge(:options => 'ENGINE...
create_table_without_innodb_row_format(table_name...
yield td if block_given?
end
end
alias_method_chain :create_table, :innodb_row_format
end
end
end
}}
- 現在のschema.rbに従って作り直し
bundle exec rake db:reset RAILS_ENV=production
**データのインポート [#m2a17511]
-そのままutf8mb4はutf8の上位互換なのでそのままインポート...
mysql asl_production < data.sql
ページ名: