gpt4 book ai didi

python - django-sorcery 不会自动生成迁移

转载 作者:行者123 更新时间:2023-12-01 01:16:06 29 4
gpt4 key购买 nike

我正在玩django-sorcery库,我一直在尝试生成一些迁移:

django-admin sorcery revision -m "Second revision" --autogenerate -v 1 my_app

当我第一次运行该命令时,我看到一条错误消息:

FileNotFoundError: [Errno 2] No such file or directory: [... snip ...]python3.7/site-packages/django_sorcery/db/alembic/script.py.mako

不确定为什么 pip 包中缺少模板,我手动将其添加回来。

现在,即使我指定了 --autogenerate 标志,该命令也只会生成空的迁移文件。

我应该将 env.py 文件扔到某个地方吗?这个命令实际上应该起作用吗?感谢帮助。

最佳答案

缺失的模板实际上已在最近的版本中得到解决,因此建议尝试一下。

对于没有被采用的模型,一些可能有用的想法

  • 模型必须是魔法模型。换句话说,它需要子类化db.Model:
from django_sorcery.db import databases
db = databases.get("default")
class MyModel(db.Model):
...
  • 模型需要在INSTALLED_APPS之一中定义。内部巫术使用get_containing_app_config获取模型对应的 django 应用程序,因为 sqlalchemy 模型未在 django 应用程序中 native 注册

  • 默认情况下不需要其他任何东西,因此不需要传统的env.py。应用程序中允许进行一些基本的自定义 AppConfig:

    • version_table - 默认为 alembic_version_{app.label}
    • version_table_schema

    如果还不够,还有几个 signals它可用于 Hook alembic 配置创建以进行自定义

这应该使迁移命令起作用。 repo 协议(protocol)附带 test_site其中包含用于测试的规范polls应用程序。您可以尝试使用它和 alembic 迁移:

$ cd test_site
$ ./manage.py sorcery revision -m 'initial migration' -r 0001 --autogenerate polls
$ cat polls/migrations/0001_initial_migration.py
...
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('question',
sa.Column('pk', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('question_text', sa.String(length=200), nullable=True),
sa.Column('pub_date', sa.DateTime(), nullable=True),
sa.PrimaryKeyConstraint('pk')
)
op.create_table('choice',
sa.Column('pk', sa.Integer(), autoincrement=True, nullable=False),
sa.Column('choice_text', sa.String(length=200), nullable=True),
sa.Column('votes', sa.Integer(), nullable=True),
sa.Column('question_pk', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['question_pk'], ['question.pk'], ),
sa.PrimaryKeyConstraint('pk')
)
# ### end Alembic commands ###
...

免责声明:我是 django-sorcery 的维护者之一。感谢您的尝试!如果您遇到任何错误,请随时提出问题。由于我们正在构建功能,所以很多东西还没有很好地记录下来,但希望随着时间的推移,文档和稳定性会得到改善。

关于python - django-sorcery 不会自动生成迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54335419/

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