【问题标题】:TypeError when make migration with django and cassandra使用 django 和 cassandra 进行迁移时出现类型错误
【发布时间】:2018-12-20 10:56:29
【问题描述】:

当我执行python manage.py migrate 时,我得到以下类型错误:

TypeError: Unknown option(s) for sync_cassandra command: app_label, fake, fake_initial, interactive, migration_name, run_syncdb. Valid options are: database, help, no_color, pythonpath, settings, skip_checks, stderr, stdout, traceback, verbosity, version.

我正在使用 Cassandra 3.11.2、Python 3.5.2 和 django 2.0.7。全部在 Ubuntu Server 16.04 中运行

编辑以添加 settings.py

https://pastebin.com/s4fQCNEk

我认为设置文件中的一切都很好...我正在尝试重新安装 cassandra、cassandra_engine 并且不起作用。

谢谢!

【问题讨论】:

标签: python django cassandra


【解决方案1】:

你需要发布你的python代码,否则很难说清楚。

可能是您缺少相关模块importhttps://www.pydoc.io/pypi/django-cassandra-engine-1.1.0/autoapi/management/commands/sync_cassandra/index.html

你可以看看这里,我想你会发现这很有用: https://github.com/r4fek/django-cassandra-engine/blob/master/django_cassandra_engine/management/commands/sync_cassandra.py

【讨论】:

【解决方案2】:

这似乎与此处发布的问题相似:Django migration raised TypeError: Unknown option(s) for sync_cassandra command

我相信这是a change in Django as of version 2.0 的结果,其中call_command() 函数已更新以验证传递给它的选项。如果无法验证该选项(即,没有出现在您正在绘制的任何模块的代码中),那么您将收到此 TypeError。

在您的代码库中搜索 call_command() 的实例,这些实例使用您收到的 TypeError 消息中列出的任何未知选项。根据他们的目的,您可以考虑两种选择:

  1. call_command() 中删除未知选项
  2. 在包含带有未知选项的call_command() 的文件中添加适当的parser.add_argument() 函数。 Django 文档中的示例显示here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 2017-06-28
    • 2023-04-01
    • 1970-01-01
    • 2016-12-29
    相关资源
    最近更新 更多