首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Ruby中运行SQL文件

如何在Ruby中运行SQL文件
EN

Stack Overflow用户
提问于 2016-10-28 13:37:19
回答 1查看 2.2K关注 0票数 0

我有多个.sql文件,其中可能包含多个Alter table语句、视图定义或plsql函数定义。我想在PostgreSQL DB上应用完整的sql文件。它应该类似于

代码语言:javascript
代码运行次数:0
运行
复制
psql -h "HostName" -p "Port" -U "userName" -d "pwd" -f "Sql file location"

我尝试过使用PG.connect.execute,通过这种方式,我需要加载文件并分别执行每条语句。有没有办法在Ruby语言中执行整个sql文件?

EN

回答 1

Stack Overflow用户

发布于 2016-10-28 14:50:46

有两个用于与PostgreSQL数据库通信的API,这两个API都可以作为gem使用。pg gem提供了到Postgres的纯Ruby绑定。

示例:此代码假设您正在通过TCP/IP在本地计算机的端口5432上访问数据库:

代码语言:javascript
代码运行次数:0
运行
复制
gem 'pg'
require 'pg'
 def with_db
   db = PG.connect(
     dbname: 'dbname',
     user: 'user',
     password: 'password'
   )
   begin
      yield db
   ensure
      db.close
   end
 end

sql = File.open('path/to/your_sql.sql', 'rb') { |file| file.read }
with_db do |db|
  begin
    db.exec(sql)
  rescue PG::Error
     #####
  end
end

有关更多信息,请访问check this

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40298692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档