🐙

AWS Amplify プロジェクトディレクトリを変更したらやること

2023/12/17に公開

AWS Amplify プロジェクトのルートディレクトリを移動したら古いプロジェクトパスの情報が残ってうまくいかない。。ということがありました。

例えば、こんなエラーが出てしまいました。

~/Flutter/<新しいルートディレクトリ>
❯ amplify codegen models
⚠️ WARNING: owners may reassign ownership for the following model(s) and role(s): Trip: [owner], Message: [owner]. If this is not intentional, you may want to apply field-level authorization rules to these fields. To read more: https://docs.amplify.aws/cli/graphql/authorization-rules/#per-user--owner-based-data-access.
✅ GraphQL schema compiled successfully.

Edit your schema at 
<古いルートディレクトリ>/amplify/backend/api/<プロジェクト名>/schema.graphql or place .graphql files in a directory at <古いルートディレクトリ>/amplify/backend/api/<プロジェクト名>/schema
Error: ENOENT: no such file or directory, open '<古いルートディレクトリ>/pubspec.lock'
    :
    :

どうやら、<プロジェクトルートパス>/amplify/.config/local-env-info.json 内にこれらの情報が保存されているようです。

{
  "projectPath": "<古いプロジェクトパス>",
  "defaultEditor": "vscode",
  "envName": "dev"
}

中身はこんな感じにあっていて、直接更新しても良さそうですが公式はどうなんだろうと思って調べてみました。

ヒットしたのはこちらの Issue : https://github.com/aws-amplify/amplify-cli/issues/1390
amplify configure projectコマンドでできるみたいです!実際にやってみたところ、configureファイルが更新されてちゃんと新しいルートディレクトリのパスを見てくれるようになりました。

~/Flutter/<新しいルートディレクトリ>
❯ amplify configure project

Project information
| Name: InterTwineApp
| Environment: dev
| Default editor: Visual Studio Code
| App type: flutter
| Configuration file location: ./lib/

AWS Profile setting
| Selected profile: intertwine-amplify

Advanced: Container-based deployments
| Leverage container-based deployments: No

? Which setting do you want to configure? Project information
? Enter a name for the project InterTwineApp
? Choose your default editor: Visual Studio Code
✔ Choose the type of app that you're building · flutter
Please tell us about your project
? Where do you want to store your configuration file? ./lib/
Using default provider  awscloudformation

Successfully made configuration changes to your project.

<プロジェクトルートパス>/amplify/.config/local-env-info.jsonもちゃんと更新されて、一件落着です。

Discussion