gpt4 book ai didi

python - "alembic current"和 "alembic history"搜索不同的路径吗?

转载 作者:行者123 更新时间:2023-12-05 07:22:19 25 4
gpt4 key购买 nike

我将 Alembic 与 SQLAlchemy 结合使用来执行模式迁移data migration .

由于我在项目的主应用程序 myapp 中将特定于迁移的依赖项存储在它们自己的模块中(根据 Michael Bayer's recommendation ),我遇到了 ModuleNotFoundError运行 alembic currentalembic history

作为suggested here ,我通过将以下内容添加到 env.py 将存储库目录 project 添加到我的系统路径。

# Add project to path.
sys.path.append(os.getcwd())

这修复了alembic currentModuleNotFoundError但不是 alembic history

为什么这两个命令给出不同的结果?


存储库结构:

project
│ alembic.ini
│ db.sqlite

├───alembic
│ │ env.py
│ │ README
│ │ script.py.mako
│ │
│ └───versions
│ 2b939015022a_create_athlete_table.py
│ 3649f2977ae1_migrate_athletes_to_star_athletes.py

└───myapp
└───migrations
star_athlete.py

迁移脚本:

"""migrate athletes to star_athletes

Revision ID: 3649f2977ae1
Revises: 2b939015022a
Create Date: 2019-06-12 09:46:16.173048

"""
from alembic import op
import sqlalchemy as sa

# This line causes ModuleNotFoundError
from myapp.migrations.star_athlete import StarAthlete


# revision identifiers, used by Alembic.
revision = '3649f2977ae1'
down_revision = '2b939015022a'
branch_labels = None
depends_on = None


def upgrade():
print('upgrading...')


def downgrade():
print('downgrading...')

最佳答案

是的,因为导入路径被 Alembic 的 env.py 修改了(甚至在你修改之前),但默认情况下 env.py 不被 执行>蒸馏历史。您可以通过在 alembic.ini 中设置 revision_environment = true 来解决此问题。

关于python - "alembic current"和 "alembic history"搜索不同的路径吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56567679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com