StrapiのデータベースをMySQLにするには?設定手順をまとめました

Strapi

ヘッドレスCMS、便利ですよね。フロントエンドフレームワークとの相性のよさや拡張性の高さから、最近は国内においても人気上昇中のようです。自分もヘッドレスCMSの1つである「Strapiについて勉強を始めているところです。

strapiでは、SQLiteがデフォルトのデータベースに設定されています。ファイルを作成するだけでデータベースを作成でき手軽に導入できる反面、本番運用でSQLiteを使用し続けてしまうと、エクスポートに難が生じたり、バックアップが取りづらかったりと、何かと支障が生じます。本番環境ではしっかりしたRDBMSを使用したいものです。

そこで当記事では、StrapiのデータベースをMySQLにする方法について紹介していきます。

スポンサーリンク

データベースの設定ファイルは?

Strapiのデータベースに関する設定は、config/database.jsにあります。

データベースにMySQLを使用する場合は、config/database.jsを以下のように書き換えます。

module.exports = ({ env }) => ({
    defaultConnection: 'default',
    connections: {
        default: {
            connector: 'bookshelf',
            settings: {
                client: 'mysql',
                host: env('DATABASE_HOST', 'localhost'),
                port: env.int('DATABASE_PORT', 3306),
                database: env('DATABASE_NAME', 'strapi'),
                username: env('DATABASE_USERNAME', 'strapi'),
                password: env('DATABASE_PASSWORD', 'strapi'),
                // client: 'sqlite',
                // filename: env('DATABASE_FILENAME', '.tmp/data.db'),
            },
            options: {
                useNullAsDefault: true,
            },
        },
    },
});

各パラメーターは環境変数から設定できるようになっています。.envファイルをstrapiのルートディレクトリに配置しておけば、データベースなどの設定を環境ごとに設定することができます。

HOST=192.168.1.1
PORT=1337
DATABASE_NAME=databasename
DATABASE_USERNAME=user
DATABASE_PASSWORD=password

SQLiteに関する部分はコメントアウトしておきました。コメントを外せば、SQLiteでの運用に戻せます。

スポンサーリンク

MySQLパッケージのインストール

StrapiのデータベースにMySQLを使用するには、mysqlパッケージのインストールが必要となります。npmやyarnでStrapiのプロジェクトにインストールを行います。

npm install mysql --save

Strapiを起動する

mysqlパッケージをインストールしたら、Strapiを起動しましょう。

$npm run strapi dev

Strapiを起動すると、マイグレーションが実行され、必要なテーブル類が作成されます。

管理ユーザーのセットアップを済ませれば、設定完了です。

まとめ

StrapiのデータベースをMySQLに変更する方法について紹介しました。

SQLiteはSQL文も特殊なため、ほかのデータベースへ直接ダンプすることができません。一度使い始めてしまうと、意外とあとからの移行が難しいため、なるべく早く(できれば開発中から)MySQLに切り替えておくことをおすすめします。

コンテンツの移行については、別の記事で紹介したいと思います。

コメント

タイトルとURLをコピーしました