Flask 烧瓶在生产中的应用

Flask 烧瓶在生产中的应用,flask,devops,flask-migrate,Flask,Devops,Flask Migrate,这个问题是关于flask migrate在部署时的使用模式。要为应用程序设置服务器或docker容器,需要创建数据库 通常与中一样,migrations文件夹位于项目的根目录中。这是有道理的,但这意味着在生产中,如果您将flask应用程序作为已安装的软件包进行拉取,那么migrations文件夹将不可用 将migrations文件夹复制到容器并在容器中运行升级或完全执行其他操作的模式是否正确?这看起来很尴尬,因为我必须使迁移与我从python包repo中提取的应用程序版本保持同步。我知道完全放弃

这个问题是关于flask migrate在部署时的使用模式。要为应用程序设置服务器或docker容器,需要创建数据库

通常与中一样,migrations文件夹位于项目的根目录中。这是有道理的,但这意味着在生产中,如果您将flask应用程序作为已安装的软件包进行拉取,那么migrations文件夹将不可用


将migrations文件夹复制到容器并在容器中运行升级或完全执行其他操作的模式是否正确?这看起来很尴尬,因为我必须使迁移与我从python包repo中提取的应用程序版本保持同步。我知道完全放弃迁移是可能的,只需执行
db.create_all()
,但如果这是答案,那么我可能会对db迁移的目的感到困惑。

您可以通过两步将文件包含到包中:

1.在
setup.py
中将
包含包数据
设置为
True

from setuptools import find_packages, setup

setup(
    name='myapp',
    version='1.0.0',
    packages=find_packages(),
    include_package_data=True,  # <--
    zip_safe=False,
    install_requires=[
        'flask',
    ],
)

生成包时将包含此文件。有关完整的
清单,请参阅。在可用的
命令中。

您可以通过以下两个步骤将文件包含到包中:

1.在
setup.py
中将
包含包数据
设置为
True

from setuptools import find_packages, setup

setup(
    name='myapp',
    version='1.0.0',
    packages=find_packages(),
    include_package_data=True,  # <--
    zip_safe=False,
    install_requires=[
        'flask',
    ],
)

生成包时将包含此文件。查看完整的
MANIFEST.in
命令。

我还必须将
data\u文件添加到
setup.py
中,该文件将数据(在我的情况下是
migrations
文件夹)放入目录
sys.prefix
。我还必须将
data\u文件添加到
setup.py
,将数据放入目录
sys.prefix
(在我的例子中是
migrations
文件夹)到目录
sys.prefix