是否需要sqlparse,如果是,您如何安装它?

时间:2018-05-17 07:09:31

标签: django

我有两个不同的Django项目。一个使用PostgreSQL,一个使用MySQL。

在postgres版本中,这有效。

    migrations.RunSQL('''CREATE OR REPLACE view skill_ranked_by_person_view AS 
    SELECT link.id
    , skill.id skill_id
    , person.id person_id
    , concat( skill_rank.rank, ' — ', replace(
        concat(first_name,' ', middle_name, ' ' , last_name)
    , '  ', ' '), ' (', skill_rank.name, ')' ) person
    -- , * 
    FROM people_personskill link
    INNER JOIN people_skill skill
    ON link.skill_id = skill.id
    INNER JOIN people_skillrank skill_rank
    ON skill_rank.id = link.skill_rank_id
    INNER JOIN people_person person 
    ON link.person_id = person.id
    ORDER BY skill.rank desc, skill_rank.rank DESC'''),

在MySQL版本中,这失败了。

    migrations.RunSQL('''
    create or replace view client_view as
    select IDAutoInteger as id
    , concat(IDText,' - ', NameText) `client` 
    from clients 
    where IDText is not null
    order by concat(IDText,' - ', NameText) ;
    '''),

"sqlparse is required if you don't split your SQL "
django.core.exceptions.ImproperlyConfigured: sqlparse is required if you don't split your SQL statements manually.

两个项目都没有在requirements.txt文件中使用sqlparse。

是否需要sqlparse,如果是,请如何安装?

2 个答案:

答案 0 :(得分:4)

解决方案很简单。

pip install sqlparse

我在MySQL项目中将sqlparse添加到requirements.txt。

我检查了sqlparse是否安装在不需要它的项目中并且没有安装。我不确定为什么一个项目需要它,一个没有,但问题的解决方法是通过pip安装sqlparse。

答案 1 :(得分:1)

根据Django文档:

有一些可选的Django功能需要第三方Python程序包,这些程序包(有意地)未指定为install_requires需要setup.py中的依赖项,因为并非每个人都希望安装它们。

然后他们列出了sqlparse:

  • sqlparse用于迁移RunSQL的多行SQL语句

Source

相关问题