clearDB内の日本語が文字化けする件を正す(heroku)。

clearDB内の日本語が文字化けする件を正す(heroku)。

clearDB 内の日本語が文字化けする件を正す(heroku)。

こんにちは、junwatanabe72 です。
以前 express を使用したアプリを heroku にデプロイした際にハマった点を 共有したいと思います。

状況

  • express で作ったバックエンドアプリを heroku にデプロイ。
  • express アプリ内では、sequelize というライブラリを通して clearDB と連携。
  • DB の書込み等の動作は問題ないが、日本語が文字化けする。

解決した対応

こちらを参考に修正しました。
express の sequelize 側の default 設定を修正することで解決!
具体的には、migrations フォルダに charset を変更する migration ファイルを追加します。

'use strict';

module.exports = {
    up: (queryInterface, Sequelize) => {
        return queryInterface.sequelize.query(`ALTER DATABASE ${queryInterface.sequelize.config.database} CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;`);
    },

    down: (queryInterface, Sequelize) => {}
};

試したが解決しなかった対応

  1. heroku 上に環境変数を再設定する。
    参考 1
    参考 2

  2. dump ファイルの各 table に直接書き込む。
    一旦は、成功するものの、時間が立つと「latin1」に戻ってしまいました。

まとめ

heroku,clearDB では、検索にヒットしなかったので、 いろんな角度から検索することが大切だと感じました。。。

関連記事

PROGRAMの関連記事