如何为我的容器化 Flask 应用程序创建本地迁移文件

How to create a local migration file for my containerized flask app

我最近将我的 Flask 应用程序容器化了。我的 docker-compose 文件创建了四个容器:web、db、rabbit 和 celery。当我更新我的代码时,我的网络容器也会更新。效果很好,我很满意。

但是,我觉得我一定遗漏了一些东西,因为我不知道如何创建迁移文件。当我使用虚拟环境时,我只是 运行 python manage.py db migrate 并且(砰!)创建了迁移。现在,当我启动我的 venv 和 运行 该命令时,我收到以下错误:

(psycopg2.OperationalError) could not translate host name "db" to address: nodename nor servname provided, or not known

我想这是有道理的,因为 command/code 看起来 find/resolve db。话虽如此,我该如何解决这个问题?我是不是做错了?

我正在使用:SQLAlchemy、flask-migrate、postgres

你必须在容器中运行 manage.py,行中应该做的事情:

docker-compose exec container-name /path/to/manage.py db migrate

如果您需要访问在您的容器中创建的文件,只需在容器上安装一个卷并将您的应用程序打包到该卷中。可以从主机访问写入容器内卷的所有内容。