在Rails中添加SQL函数时迁移时出错

时间:2016-10-09 19:21:22

标签: ruby-on-rails ruby postgresql

我有以下两个文件:

20161009180554_add_process_functionst_to_db.rb

class AddProcessFunctionstToDb < ActiveRecord::Migration
  def up
    funcs = File.read(Rails.root.join('db', 'migrate', 'processfunctions.sql').to_s)
    execute funcs
  end
end

processfunctions.sql

drop function if exists retention_data(ref refcursor, shopId integer);
create or replace function retention_data(ref refcursor, shopId integer) returns refcursor as $$
    begin
...
    return ref;
    end;
$$ language plpgsql;

我正在尝试将processfunctions.sql中的函数添加到数据库中。但是当我跑步时

rake db:migrate

我收到以下错误:

/app/vendor/bundle/ruby/2.2.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:  syntax error at or near ""
LINE 1: 
        ^
: 
drop function if exists retention_data(ref refcursor, shopId integer);

第1行之后:&#39;在错误中(箭头指向的是)是一个矩形。就像你没有安装正确的字体时所看到的那样。

我已删除第1行的空行并从CRLF更改为LF,但这些都没有改变任何内容

0 个答案:

没有答案