我有两个不同的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'''),
Run Code Online (Sandbox Code Playgroud)
在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) ;
'''),
Run Code Online (Sandbox Code Playgroud)
与
"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.
Run Code Online (Sandbox Code Playgroud)
在project.txt文件中都没有sqlparse。
是否需要sqlparse?如果是,如何安装它?
Kei*_*son 11
解决方案很简单。
pip install sqlparse
Run Code Online (Sandbox Code Playgroud)
我在mysql项目中将sqlparse添加到了requirements.txt中。
我检查了sqlparse是否已安装在不需要它的项目中,并且尚未安装。我不确定为什么一个项目需要它,而一个项目却不需要,但是问题的解决方案是仅通过pip安装sqlparse。