【问题标题】:How to run database migrations within a CDK Pipeline如何在 CDK 管道中运行数据库迁移
【发布时间】:2020-11-15 19:07:13
【问题描述】:

是否有在 CDK 管道中运行数据库迁移的良好模式?

通常(没有 CDK 管道)我会使用以下部署脚本来实现:

  • 部署数据库堆栈
  • 等待数据库堆栈完成
  • 运行数据库迁移
  • 部署 API 堆栈

有没有办法在 CDK 管道应用程序中执行此操作(在部署数据库堆栈之后但在 API 堆栈之前运行迁移)?

export class MyStage extends Stage {  
  constructor(scope: Construct, id: string, props?: StageProps) {
    super(scope, id, props);
    const dbStack = new DatabaseStack(this, 'Database');
    const apiStack = new ApiStack(this, 'Api', {
        dbUrl: dbStack.dbUrl
    });    
  }
}

【问题讨论】:

    标签: aws-cdk


    【解决方案1】:

    这样的东西我会放在 CustomResource 中:https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html

    基本上,您编写一个处理 CREATE 事件并将数据库作为属性的 lambda。然后它将具有通常是您的迁移脚本的代码。您可以忽略更新/删除事件,或者在删除时进行一些数据备份。请记住,事件是针对自定义资源的,不一定针对数据库(即使它们可能重合)。

    【讨论】:

      猜你喜欢
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 2017-05-25
      • 2015-12-28
      • 2016-09-19
      • 1970-01-01
      相关资源
      最近更新 更多