• django 2.2(含 drf)sqlite3 转成 mysql5.7 报错:return instance._state.fields_cache[cache_name] KeyError: 'article'


    导出导入过程如下:

    1. settings DATABASES 使用 sqlite3,执行:

    python manage.py dumpdata > data.json
    

     导出 sqlite3 数据。

    2. settings DATABASES 使用 mysql, 执行:

    python manage.py migrate
    

     生成数据表,然后要删除已经生成数据的表:

    3. 进入到MySQL,执行如下的 SQL 语句,删除已经生成数据的表:

    use 你的数据库名;
    delete from auth_permission;
    delete from django_content_type;

    4.settings DATABASES 使用 mysql, 执行:

    python manage.py loaddata data.json
    

    django 2.2(含 drf) sqlite3 转成 mysql5.7 ,执行 python manage.py loaddata data.json 时报错如下(暂没解决,有一个 article 模型):

    (joyoo) [root@VM_2_29_centos blog]# python manage.py loaddata data.json 
    /root/.virtualenvs/joyoo/lib/python3.6/site-packages/daphne/server.py:15: UserWarning: Something has already installed a non-asyncio Twisted reactor. Attempting to uninstall it; you can fix this warning by importing daphne.server early in your codebase or finding the package that imports Twisted and importing it later on.
      UserWarning,
    System check identified some issues:
    
    Traceback (most recent call last):
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 164, in __get__
        rel_obj = self.field.get_cached_value(instance)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/db/models/fields/mixins.py", line 13, in get_cached_value
        return instance._state.fields_cache[cache_name]
    KeyError: 'article'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "manage.py", line 22, in <module>
        execute_from_command_line(sys.argv)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
        utility.execute()
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/core/management/base.py", line 323, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/core/management/base.py", line 364, in execute
        output = self.handle(*args, **options)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/core/management/commands/loaddata.py", line 72, in handle
        self.loaddata(fixture_labels)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/core/management/commands/loaddata.py", line 114, in loaddata
        self.load_label(fixture_label)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/core/management/commands/loaddata.py", line 181, in load_label
        obj.save(using=self.using)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/core/serializers/base.py", line 223, in save
        models.Model.save_base(self.object, using=using, raw=True, **kwargs)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/db/models/base.py", line 790, in save_base
        update_fields=update_fields, raw=raw, using=using,
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 175, in send
        for receiver in self._live_receivers(sender)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 175, in <listcomp>
        for receiver in self._live_receivers(sender)
      File "/root/yzq/djangos/blog/blog/blog_signals.py", line 88, in change_comment
        comments = instance.article.comment_article_set.filter(is_delete=False).order_by(
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 178, in __get__
        rel_obj = self.get_object(instance)
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 145, in get_object
        return qs.get(self.field.get_reverse_related_filter(instance))
      File "/root/.virtualenvs/joyoo/lib/python3.6/site-packages/django/db/models/query.py", line 408, in get
        self.model._meta.object_name
    blog.models.DoesNotExist: Problem installing fixture '/root/yzq/djangos/blog/data.json': Article matching query does not exist.
    Sentry is attempting to send 1 pending error messages
    Waiting up to 10 seconds
    Press Ctrl-C to quit
    

        

    有遇到童鞋吗?有可行解决方法吗?求指导,感谢。

    同类问题:

    成功了(把 app 启动信号的地方注释掉后导入就成功了)

      1 from django.apps import AppConfig
      2 
      3 
      4 class BlogConfig(AppConfig):
      5     name = 'blog'
      6     verbose_name = "B 博客管理"
      7 
      8     # 启用信号
      9     #def ready(self):
     10    #    import blog.blog_signals
    

      日志

    (joyoo) [root@VM_2_29_centos blog]# python manage.py loaddata /root/yzq/download/data.json
    /root/.virtualenvs/joyoo/lib/python3.6/site-packages/daphne/server.py:15: UserWarning: Something has already installed a non-asyncio Twisted reactor. Attempting to uninstall it; you can fix this warning by importing daphne.server early in your codebase or finding the package that imports Twisted and importing it later on.
      UserWarning,
    System check identified some issues:
    
    WARNINGS:
    finance.FundNet.fund: (fields.W342) Setting unique=True on a ForeignKey has the same effect as using a OneToOneField.
            HINT: ForeignKey(unique=True) is usually better served by a OneToOneField.
    Building prefix dict from the default dictionary ...
    jieba: 2022-04-12 01:35:45,402 /root/.virtualenvs/joyoo/lib/python3.6/site-packages/jieba/__init__.py [line:111] DEBUG Building prefix dict from the default dictionary ...
    Loading model from cache /tmp/jieba.cache
    jieba: 2022-04-12 01:35:45,406 /root/.virtualenvs/joyoo/lib/python3.6/site-packages/jieba/__init__.py [line:131] DEBUG Loading model from cache /tmp/jieba.cache
    Loading model cost 1.018 seconds.
    jieba: 2022-04-12 01:35:46,420 /root/.virtualenvs/joyoo/lib/python3.6/site-packages/jieba/__init__.py [line:163] DEBUG Loading model cost 1.018 seconds.
    Prefix dict has been built succesfully.
    jieba: 2022-04-12 01:35:46,434 /root/.virtualenvs/joyoo/lib/python3.6/site-packages/jieba/__init__.py [line:164] DEBUG Prefix dict has been built succesfully.
    Killed
    

      

  • 相关阅读:
    Jmeter_远程启动 I
    jmeter(九)逻辑控制器
    Mysql innodb 间隙锁 (转)
    MySQL- InnoDB锁机制
    Innodb间隙锁,细节讲解(转)
    性能测试:压测中TPS上不去的几种原因分析(就是思路要说清楚)
    Redis性能调优
    Redis基础
    VMThread占CPU高基本上是JVM在频繁GC导致,原因基本上是冰法下短时间内创建了大量对象堆积造成频繁GC。
    关于Hibernate二级缓存第三方插件EHCache缓存
  • 原文地址:https://www.cnblogs.com/yinzhuoqun/p/15905327.html
Copyright © 2020-2023  润新知