【问题标题】:AWS ECS & Prisma2 & RDS: Connect local machine to private DB for migration with prisma?AWS ECS & Prisma2 & RDS:将本地机器连接到私有数据库以使用 prisma 进行迁移?
【发布时间】:2023-03-16 23:50:01
【问题描述】:

我将我的全栈项目部署到 AWS ECS(Docker)。到目前为止一切正常。我的问题是我不知道如何将本地计算机连接到 RDS-DB 以迁移我的 DB-Schema。

我要运行命令:prisma migrate deploy --preview-feature --> 在数据库中创建表和字段

我的 RDS-DP 是私有(不可公开访问),并且与我的前端和后端位于同一个 VPC 中。前端有一个公共安全组(Load-Balencer),后端有一个私有安全组,并且对数据库有权限(请求正在工作只是得到错误:“表public.Game在当前数据库中不存在”哪个我可以通过迁移来解决)。目前只有我的后端可以访问 RDS。

我还尝试了一个公共的测试数据库(公共可访问性),并且我能够从我的本地计算机迁移。

您一般如何在生产环境中迁移 Prisma?如何在不可公开访问的情况下将本地计算机权限授予 RDS?

【问题讨论】:

    标签: amazon-web-services amazon-rds amazon-ecs prisma2


    【解决方案1】:

    如果您可以从使用 ECS 部署的容器之一运行该命令,并且您在 EC2 实例上部署了 ECS 任务,您可以将 ssh 放入实例并将 docker exec 放入容器(连接到 RDS 数据库) ),据说您可以从中运行该命令。请注意,您的实例本身可能无法从您的笔记本电脑公开访问和访问(在这种情况下,您需要有某种堡垒主机来执行此操作)。

    如果您可以从使用 ECS 部署的容器之一运行该命令,并且您在 Fargate 上部署了 ECS 任务,那么这会有点棘手,因为没有可以通过 SSH 访问的 EC2 实例。在这种情况下,我猜您需要部署一个临时环境(在 EC2 或 ECS/EC2 上允许运行该命令来准备数据库。

    仅供参考,我们即将发布一项新功能,允许您将exec 放入容器(在 ECS/EC2 或 ECS/Fargate 上运行),而无需执行这些跳转(如果可能)。但此功能(尚)不可用。更多here

    【讨论】:

      【解决方案2】:

      如果您在 ECS 中运行它,创建另一个使用相同 Docker 映像的任务定义可能很简单,但会覆盖命令参数以运行 migrate 命令而不是正常命令来启动您的应用程序。另一种类似的方法是使用 CLI 运行 aws ecs run-task 命令并以这种方式执行。

      【讨论】:

        猜你喜欢
        • 2021-08-26
        • 1970-01-01
        • 2021-07-17
        • 2020-04-29
        • 2019-05-16
        • 1970-01-01
        • 2019-08-24
        • 2020-06-30
        • 2019-12-02
        相关资源
        最近更新 更多