如何删除并重建Amplify本地Mock的DynamoDB/AppSync数据库?
我之前也碰到过一模一样的糟心事!Amplify的本地mock会悄悄缓存表结构和数据,哪怕你执行了amplify remove api再重新添加,它还是会从本地缓存里捞旧东西出来。下面是我在Mac上亲测有效的彻底清理步骤,保证能让你的mock环境完全重建:
先停掉所有Amplify Mock进程
首先确保没有运行中的mock服务,直接在运行mock的终端按Ctrl+C停止。如果不确定有没有残留进程,用这个命令强制杀掉:pkill -f "amplify mock"删除全局Amplify缓存
Mac上Amplify会把全局mock缓存存在用户根目录的隐藏文件夹里,这是很多人忽略的关键点,运行这个命令彻底删掉:rm -rf ~/.amplify/lib/aws-amplify-cli/*清理项目本地的Mock数据
进入你的项目根目录,删掉项目内的mock临时文件和数据库数据:rm -rf .amplify/mock-api(可选)确认项目API配置完全清除
如果之前执行amplify remove api后还是有残留,手动检查amplify/backend/api目录,把对应API的文件夹删掉,然后运行amplify push同步配置(这步主要是确保云端和本地配置一致,对本地mock来说不是必须,但能避免后续其他问题)重新初始化Mock环境
现在重新添加你的API(如果之前移除了的话):amplify add api跟着向导重新配置你的GraphQL schema,然后运行:
amplify mock api这时候就能看到本地AppSync端点和DynamoDB表完全重建了,新的schema和键配置都会生效,旧数据也不会再出现。
另外提个小技巧:如果只是修改了schema不想每次手动清理,也可以试试amplify mock api --reset命令,它会自动重置mock环境,但有时候这个命令清理得不够彻底,所以上面的手动清理方法更稳妥。
内容的提问来源于stack exchange,提问作者Stanley

