如何使用django加载自定义sql函数
我试图使用Django的初始SQL数据功能来创建SQL函数。文档说明我可以这样做: Django提供了一个钩子,用于在运行migrate时,在CREATETABLE语句之后执行数据库任意SQL。您可以使用此钩子填充默认记录,也可以创建SQL函数、视图、触发器等 在谷歌搜索之后,我发现django的customsql代码拆分了所有sql文件,并逐行运行它们,从而产生了这个错误 未能为myapp安装自定义SQL。somemodel模型:在“$$BEGIN;”处或附近未终止的美元引号字符串如何使用django加载自定义sql函数,django,postgresql,Django,Postgresql,我试图使用Django的初始SQL数据功能来创建SQL函数。文档说明我可以这样做: Django提供了一个钩子,用于在运行migrate时,在CREATETABLE语句之后执行数据库任意SQL。您可以使用此钩子填充默认记录,也可以创建SQL函数、视图、触发器等 在谷歌搜索之后,我发现django的customsql代码拆分了所有sql文件,并逐行运行它们,从而产生了这个错误 未能为myapp安装自定义SQL。somemodel模型:在“$$BEGIN;”处或附近未终止的美元引号字符串 有没有公
有没有公认的解决办法?还是加载自定义sql函数的更好方法 是的,我以前见过这个问题。如果在应用程序的sql/.sql中粘贴多行函数,如下所示:
CREATE或REPLACE函数增量(i integer)将整数返回为$$
开始
返回i+1;
结束;
$$语言plpgsql;
您将看到所看到的错误,即:
未能为mysite安装自定义SQL。轮询模型:在“$$BEGIN RETURN i+1;”处或附近未终止的美元引号字符串
第1行:。。。函数增量(i integer)将整数返回为$$BEGIN R
我认为你应该能够通过将函数定义压缩到一行来解决这个问题,例如
CREATE或REPLACE函数increment(i integer)将整数返回为$$BEGIN RETURN i+1;完;$$语言plpgsql;
看起来这个错误会影响任何多行函数(美元报价和单报价)。我在Django 1.6上进行了测试,不知道它是否已经修复