【问题标题】:no such column: django_content_type.name没有这样的列:django_content_type.name
【发布时间】:2015-07-30 01:47:47
【问题描述】:

我在我的网站 example.com 上部署了 django-oscar 的示例应用沙箱。我想将其移至 example.com:8000 并在 example.com url 上运行另一个项目。我成功完成了第二部分,当你进入 example.com 时,你可以看到新的 django 项目启动并运行,但问题是,第一个 django 项目是 django-oscar 的沙箱,无法正常响应。

当您输入 example.com:8000 时,您会看到当前的调试日志:

no such column: django_content_type.name
Request Method: GET
Request URL:    http://example.com:8000/fa/
Django Version: 1.7.8
Exception Type: OperationalError
Exception Value:    
no such column: django_content_type.name
Exception Location: /usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/base.py in execute, line 485
Python Executable:  /usr/bin/python
Python Version: 2.7.3
Python Path:    
['/var/www/setak/setakenv/setakmain/django-oscar/sites/sandbox',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PIL',
 '/usr/lib/python2.7/dist-packages/gst-0.10',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
 '/usr/lib/python2.7/dist-packages/ubuntuone-client',
 '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel',
 '/usr/lib/python2.7/dist-packages/ubuntuone-couch',
 '/usr/lib/python2.7/dist-packages/ubuntuone-installer',
 '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']

现在我用谷歌搜索了这个错误,但没有得到任何有价值的结果。

另外,当我运行时

sudo python manage.py migrate

发生以下情况,我也没有找到任何正确的解决方案来解决:

Operations to perform:
  Synchronize unmigrated apps: reports_dashboard, treebeard, oscar, communications_dashboard, reviews_dashboard, debug_toolbar, widget_tweaks, offers_dashboard, catalogue_dashboard, sitemaps, compressor, django_extensions, dashboard, thumbnail, haystack, ranges_dashboard, checkout, gateway, django_tables2
  Apply all migrations: customer, promotions, shipping, wishlists, offer, admin, sessions, contenttypes, auth, payment, reviews, analytics, catalogue, flatpages, sites, address, basket, partner, order, voucher
Synchronizing apps without migrations:
  Creating tables...
  Installing custom SQL...
  Installing indexes...
Running migrations:
  No migrations to apply.
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 165, in handle
    emit_post_migrate_signal(created_models, self.verbosity, self.interactive, connection.alias)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/sql.py", line 268, in emit_post_migrate_signal
    using=db)
  File "/usr/local/lib/python2.7/dist-packages/django/dispatch/dispatcher.py", line 198, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/management/__init__.py", line 83, in create_permissions
    ctype = ContentType.objects.db_manager(using).get_for_model(klass)
  File "/usr/local/lib/python2.7/dist-packages/django/contrib/contenttypes/models.py", line 58, in get_for_model
    " is migrated before trying to migrate apps individually."
RuntimeError: Error creating new content types. Please make sure contenttypes is migrated before trying to migrate apps individually.

更新 1:我也在为此使用 django 1.7.8。

更新 2:我将 Django 版本更改为 1.8.1,makemigrations 和 migrate 命令有效。然后我再次运行服务器,现在我的日志中出现了这个错误:(我还删除了 apache 设置,因为它们无关紧要!)

Traceback (most recent call last):
  File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/handlers.py", line 63, in __call__
    return self.application(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 170, in __call__
    self.load_middleware()
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 50, in load_middleware
    mw_class = import_string(middleware_path)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/module_loading.py", line 26, in import_string
    module = import_module(module_path)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named transaction

【问题讨论】:

  • 您是否尝试过 django 的建议并首先迁移内容类型?
  • @ger.s.brett 是的,我做到了。发生同样的错误!
  • 你是从 django 1.8 开始,后来降级到 django 1.7.8 的吗?
  • @karthikr 好吧,我想我做到了。故事是有一次我从 1.7.x 升级到 1.8,然后当我发现它不起作用时,我降级到 1.7.8
  • 最简单的方法是重新创建数据库。也就是说,如果您没有太多数据

标签: python django apache django-oscar


【解决方案1】:

我终于可以解决我的问题了。问题是我使用 django 1.8 运行 manage.py migrate 并且该项目是在 django 1.7.1 下开发的,所以迁移破坏了。

所以我所做的就是再次安装 django 1.8.1,运行 manage.py migrate contenttypes 0001,然后卸载 django 1.8.1,安装 django 1.7.8 并运行 manage.py runserver,一切恢复正常并运行良好。

【讨论】:

  • 这个答案帮助我找到了一个解决方案,即使我无法完全遵循它,因为我无法运行任何 manage.py 命令而没有看到这个错误(其他所有依赖的应用程序都试图访问contenttypes 在其初始化,即使没有定义数据库)。相反,我创建了一个单独的设置文件“initial.py”,它只在 INSTALLED_APPS 中定义了 django 应用程序。我能够先使用此设置模块运行迁移,然后切换到我的常规设置模块以完成我所有的项目特定迁移。
  • 对于与 MySQL 操作相关的错误会引发此异常。例如:连接太多;无法解析主机名;握手不好;服务器正在关闭,通信错误。
【解决方案2】:

我有同样的问题。 就我而言,我使用 Django 1.10 创建本地数据库,但我需要使用旧的 Django 版本(1.7)进行一些测试,所以我删除了本地数据库并使用 Django 1.7 运行 manage.py migrate 然后错误消失了。

或者,当项目使用 Django 1.10 运行时,可以保留数据库并在需要时将数据库移回项目,而不是删除本地数据库

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多