如何在停靠的postgresql数据库中更新模式?

如何在停靠的postgresql数据库中更新模式?,postgresql,docker,Postgresql,Docker,我有一个docker compose.ymlconfig来运行停靠的postgres实例: version: "2.1" services: postgres: image: postgres:latest volumes: - ./data/postgres:/var/lib/postgresql/data - ./db_scripts:/docker-entrypoint-initdb.d 在这里的db\u脚本中,我有一组初始sql文件,可以

我有一个
docker compose.yml
config来运行停靠的postgres实例:

version: "2.1"

services:
  postgres:
    image: postgres:latest

    volumes:
      - ./data/postgres:/var/lib/postgresql/data
      - ./db_scripts:/docker-entrypoint-initdb.d
在这里的
db\u脚本中,我有一组初始sql文件,可以在第一次启动时创建表。然后,当我停止并启动docker实例时,这些脚本将不再应用,这很好

不过,我需要不时地更新模式—更改列格式、添加表、添加或删除列

在docker中运行模式更新和迁移时,首选的方式是什么

对我来说,最明显的方法就是启动实例并在运行的实例上执行sql更改,尽管这更像是一个手动过程


是否有一种推荐的方法来自动化这个过程?

通常我看到模式更新是使用DB的应用程序的一部分,有许多开源工具来完成这项工作,例如,在Java中,我们有Flyway的Liquibase。如果数据库不在Docker中,您将以完全相同的方式完成这项工作。大多数高级数据库库都有某种迁移系统,我会使用它。你在使用某种ORM吗?像
sqlalchemy
Django ORM