🦁
Blitzjs 0.25 -> 0.29へのupgrade
Breaking Change
0.28
isAuthorized の API 変更
// blitz.config.js
-const { sessionMiddleware, unstable_simpleRolesIsAuthorized } = require("@blitzjs/server")
+const { sessionMiddleware, simpleRolesIsAuthorized } = require("@blitzjs/server")
module.exports = {
middleware: [
sessionMiddleware({
- unstable_isAuthorized: unstable_simpleRolesIsAuthorized,
+ isAuthorized: simpleRolesIsAuthorized,
}),
],
0.29
Prisma 2.13+ Support に伴う DB の migrate
これがデカイです・・・。
Prisma が2.13 バージョンを発表しました
Prisma 自体が seed に対応したり、findFirst の API が提供されたりと、大幅な変更がされてました。
blitz.js コミュニティはこの変更を受け止め、CLI のインタフェースを Prisma に合わせることにしました。[1]
以上により、Prisma のmigrateが必要です。
公式 document に沿って実行します。
1) introspect
blitz@0.29ではblitz prisma
がprisma
コマンドになります。
introspect は次のように実行します。
$ blitz prisma introspect
Introspecting based on datasource defined in db/schema.prisma …
✔ Introspected 11 models and wrote them into db/schema.prisma in 164ms
*** WARNING ***
These DateTime fields were enriched with `@updatedAt` information taken from the previous Prisma schema.
- Model "Hoge", field: "updatedAt"
...
Run prisma generate to generate Prisma Client.
blitz prisma migrate dev
が実行できない
私の場合、blitz@0.23 or @0.25 を使っていたので、myapp/package.json
の@prisma/cli
が2.7.1
でした。
最新を取り込みます。
手っ取り早く、blitz new myAppName
(blitz@0.29.2)で生成された package.json をmyapp@package.json
コピペします。
"@prisma/cli": "~2.14",
"@prisma/client": "~2.14",
"blitz": "0.29.2",
"react": "0.0.0-experimental-3310209d0",
"react-dom": "0.0.0-experimental-3310209d0",
"react-error-boundary": "3.1.0",
"typescript": "4.1.3",
"zod": "1.11.11"
@prisma/cli
が更新されました。
2) If you have a prisma/migrations folder, delete, move, rename, or otherwise archive this folder.
db/migrations
を削除、もしくは別フォルダに退避しましょう。
3) Initialize a new migration history by running the following command:
migrate を実行します。
$ prisma migrate dev --preview-feature
実行ユーザーに権限が足りない場合は、次のようなエラーがでます。
これは内部的に shadow database を作成するためです。
Error: A migration failed when applied to the shadow database:
P3014
Prisma Migrate could not create the shadow database. Please make sure the database user has permission to create databases. More info: https://pris.ly/d/migrate-shadow. Original error: Error code: P1010
こちらを参考に権限を調整後、再度実行しましょう。
お疲れ様デス・・・!
僕の場合これで移行が完了しました。
seed
が失われたのはでかいですが、feature として実装予定なので気長に待ちましょう!
Discussion