ヘッドレス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に切り替えておくことをおすすめします。
コンテンツの移行については、別の記事で紹介したいと思います。
コメント