缺失的模板实际上已在最近的版本中得到解决,因此建议尝试一下。
至于没有选择的模型,一些可能有用的想法
- 模型需要是一个魔法模型。换句话说,它需要继承
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 应用程序中本地注册
-
默认情况下不需要其他任何东西,因此不需要传统的env.py。应用程序中允许进行一些基本的自定义AppConfig:
-
version_table - 默认为 alembic_version_{app.label}
version_table_schema
如果不够,还有几个 signals 可用于挂钩到 alembic 配置创建以进行自定义
这应该使迁移命令起作用。 repo 附带一个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 的维护者之一。感谢您的尝试!如果您遇到任何错误,请随时打开问题。由于我们正在构建功能,所以很多东西还没有很好地记录在案,但希望随着时间的推移文档和稳定性会得到改善。