データベース設定
プロジェクト初期化時点でAccellaは、データベースとしてSQLiteが利用できるよう設定されています。 これを変更しない場合は、この章をスキップしても問題ありません。 データベースエンジンにMySQLやPostgreSQLを使用したい場合、SQLiteの接続詳細を変更したい場合にはこの章を参照してください。
テーブル定義とマイグレーションにPrismaを使用し、ORMとしてAccel Recordを使用します。
データベースの初期化
設定を変更した後、データベースを初期化するには次のコマンドを実行します。
npx prisma migrate deploy
データベース設定の変更
このセクションでは、データベースエンジンの切り替えと接続詳細の指定方法について説明します。
SQLiteデータベースの変更
デフォルトでは、AccellaはSQLiteを使用するように設定されています。SQLiteデータベースを変更する手順は以下の通りです。SQLite接続にはbetter-sqlite3
パッケージが使用されます。
-
.env
ファイルのDATABASE_URL
を変更して、希望するデータベースパスを指定します。.env DATABASE_URL="file:/path/to/dev.db" -
データベースを初期化して設定を完了します。
Terminal window npx prisma migrate deploy
MySQLの使用
-
次のコマンドで
mysql2
パッケージをインストールします。Terminal window npm install mysql2 -
db/schema/main.prisma
ファイルのprovider
をmysql
に変更します。db/schema/main.prisma datasource db {provider = "mysql" // ここを変更url = env("DATABASE_URL")} -
.env
ファイルのDATABASE_URL
をMySQLの接続詳細に変更します。.env DATABASE_URL="mysql://root:@localhost:3306/accella_dev" -
データベースを初期化して設定を完了します。
Terminal window npx prisma migrate deploy
PostgreSQLの使用
-
次のコマンドで
pg
パッケージをインストールします。Terminal window npm install pg -
db/schema/main.prisma
ファイルのprovider
をpostgresql
に変更します。db/schema/main.prisma datasource db {provider = "postgresql" // ここを変更url = env("DATABASE_URL")} -
.env
ファイルのDATABASE_URL
をPostgreSQLの接続詳細に変更します。.env DATABASE_URL="postgresql://test:password@localhost:5432/accella_dev" -
データベースを初期化して設定を完了します。
Terminal window npx prisma migrate deploy
テスト用データベースの設定
テスト用データベースの設定を変更するには、.env.test
ファイルのDATABASE_URL
の値を変更します。
詳細はテストページを参照してください。
高度なデータベース設定
Accellaは、テーブル定義とマイグレーションにPrismaを使用します。Prismaのデータベース接続設定はdb/schema/main.prisma
に記述されています。
datasource db { provider = "sqlite" url = env("DATABASE_URL")}
ORMであるAccel Recordの初期化プロセスはsrc/config/initializers/database.ts
に記述されています。
import { initAccelRecord } from "accel-record";import { getDatabaseConfig } from "../../models";
export default async () => { await initAccelRecord(getDatabaseConfig());};
これらのセクションを変更することで、より詳細な設定が可能です。詳細については、それぞれのドキュメントを参照してください。