Flyway в ECS: создайте определение задачи для миграции базы данных с помощью flyway -example - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь создать определение задачи для переноса БД, используя flyway, но безуспешно. Я не могу найти ни одного примера в Google. Чтобы указать c, как будет выглядеть файл json в части CMD?

редактировать после запроса @ydaetskcoR - чтобы прояснить ситуацию Код должен быть предоставлен terraform. Изучив некоторый код, я придумал следующее:

data "template_file" "db_mg_template" {
  template = 
  "${file("${path.module}/templates/task_definition_dbmgr.json")}"
  vars {
    container_memory = "${local.db_migrations_container_memory}"
    service_name     = "${local.db_migrations_svc_name}"
    cpu_limit        = "${local.db_migrations_cpu_limit}"
    vault_token      = "${var.vault_token}"
    consul_address   = "${var.consul_address}"
    command          = "${jsonencode(local.command)}"
  }
}
resource "aws_ecs_task_definition" "flyway" {
  container_definitions    = "${data.template_file.db_mg_template.rendered}"
  family                   = "${local.db_migrations_svc_name}"
  network_mode             = "awsvpc"
  requires_compatibilities = ["FARGATE"]
  cpu                      = "${local.db_migrations_cpu_limit}"
  memory                   = "${local.db_migrations_container_memory}"
  execution_role_arn       = "${data.aws_iam_role.service_role.arn}"
  task_role_arn            = "${data.aws_iam_role.service_role.arn}"
}

И у моих местных жителей (вставив соответствующий код):

locals{
  command  = ["-url=jdbc:${local.db_type}://${data.consul_keys.this_db.var.db_address}",
              "-user=${data.consul_keys.this_db.var.db_username}",
              "-password=${data.vault_generic_secret.db_pass.data["value"]}",
              "-table=schema_version",
              "-location=filesystem:/tmp/DBChanges",
              "-sqlMigrationPrefix=v migrate"]
}

Цель состоит в том, чтобы запустить контейнер для пролетного пути, не ограничивая это к любому сервису (например, запуск docker контейнера) Надеюсь, это ясно, спасибо

...